首页 > 代码库 > 非计算机专业的码农C#学习笔记 七、

非计算机专业的码农C#学习笔记 七、

结构和类

(一)结构-通常用于较小的数据类型,大多数情况下都是用类,可用于特定数学公式返回值这类

Public struct 结构名{}

  1. 结构是值的类型
  2. 传递结构一般传值方式进行,不是用using进行,class则是用Using来进行引用
  3. 结构声明构造函数时候必须带参数
  4. 一个结构不能被另一个结构继承,因为都是具体的值,值不能继承值
  5. 结构可以实现接口
  6. 结构里面不能实例化其他东西
  7. 实例化结构不需要用new来修饰,如public struct st{string a=””;}引用的时候str ss;ss.a=123就可以

(二)类class

1.OOP object oriented programming面向对象编程三大特点:

(1)封装——集合属性和方法,使用的时候引用其某个属性和方法就可以,不显示出类具体结构

(2)继承——派生类:基类,继承基类的公开属性、字段、方法

(3)多态——基类含有多个派生类,通过向基类提供基类的参数,由基类分配引用派生类内方法叫做多态;

2.类的声明:修饰词 class 类名{公有变量;方法;…}

3.构造函数和.析构函数:一般对象的生命周期都是构造函数开始和析构函数结束;构造函数是特殊的函数,public 函数名{};然后在main()中调用,实例化,实例.参数和方法,就可以;析构函数实际上等于“~构造函数名”,main中调用构造函数,或者实例化构造函数,最后都会自动被调用.

4.类实例化:对象是数据行为和标识的集合,不同于类,类的实例化创建一个该对象所属类的实例

            必须对类进行实例化才能引用类中的方法和变量或者字段

(三)类的面向对象特性

1.封装:class myclass{private int x;private int y; public int X{get{return x;}set{x=value;}}}….

2.继承:p[ublic class1class0{} 派生类:基类,“:”表示继承,基类中private定义的字段属性和方法可以被派生类继承,直接用不需要“class0.参数方法等”

3.类的多态:通过基类的变量引用基类,基类自动分配到派生类,从而实际引用了派生类的具体方法,搞个例子看看:

using System;using System.Collections.Generic;using System.Linq;using System.Text;

namespace 对象和类

{

    #region 这里是类的多态实验

    class class0

    {

        private int x = 0;

        private int y = 0;

        public int X

        { get { return x; } set { x = value; } }

        public int Y

        { get { return y; } set { y = value; } }

        public virtual int add()

        { return X + Y; }

    }

    class class1 : class0

    {

        public override int add()

        {

            //return base.add();

            int x = 15;

            int y = 7;

            return x + y;

        }

//public new int add() { int x = 5; int y = 5; return x * y; }//除了重写来实现虚方法,还能新增来实现

    }

    #endregion 这里是多态的实验,包含下面mian

    class Program

    {

        static void Main(string[] args)

        {

            class1 cl1 = new class1();

            class0 cl0 = (class0)cl1;

            //cl1.X = 4;//无关

            //cl1.Y = 5;

            Console.WriteLine(cl0.add());

            Console.WriteLine(cl1.add());

    }

}

 

 

非计算机专业的码农C#学习笔记 七、