#|Unity学习之C#基础19——类和对象

#|Unity学习之C#基础19——类和对象
文章图片

1.什么是类和对象
#|Unity学习之C#基础19——类和对象
文章图片

2.类的创建
#|Unity学习之C#基础19——类和对象
文章图片

3.成员变量
#|Unity学习之C#基础19——类和对象
文章图片

下面我们看一下C#的类声明和调用:

声明:class Gun { private int gunNum; private string gunName; private int gunAmmoNum; private void print(object x) { Console.Write(x); }public int GunNum { get { return this.gunNum; } set { this.gunNum = value; } } public string GunName { set { this.gunName = value; } get { return this.gunName; } } public int GunAmmoNum { set { this.gunAmmoNum = value; } get { return this.gunAmmoNum; } }}调用:static void Main(string[] args) { Gun M4=new Gun(); M4.GunNum = 1; Console.Write(M4.GunNum); }

4.属性
上面的代码中,我们会看到一串set和get的方法。作用如下:
#|Unity学习之C#基础19——类和对象
文章图片

5.构造函数
定义:
【#|Unity学习之C#基础19——类和对象】#|Unity学习之C#基础19——类和对象
文章图片

特点:
#|Unity学习之C#基础19——类和对象
文章图片

实例:
public Gun() { Console.WriteLine("实例创建成功!"); }public Gun(int gunNum, string gunName, int gunAmmoNum) { new Gun(); this.GunNum = gunNum; this.GunName = gunName; //上面和这里的两个我没用用set方法,而是直接赋值 this.GunAmmoNum = gunAmmoNum; //这里我用了属性,所以会调用set方法}

之前我们在创建一个类的时候,会使用new XXX(); 来实例化对象。
而当我们在构造类的时候,程序员不写构造方法时,程序会自带一个无参构造方法。
而我这里自己编写了一个无参的构造方法和一个有参的构造方法。(可以理解为方法的重载)
调用时也要根据情况而定。
假如我们有多个不同的重载构造函数,我们向都执行上面无参构造函数中的writeline语句,可以如上图加一个new Gun();同时也有另一种方法,如下:
public Gun(string gunName):this() { this.GunName = gunName; }

这里我们就会调用Gun()的无参构造函数,这里涉及到后面继承等知识,暂时不用太深究。
*注:this的用法:从浅层的意义上讲,就是调用当前类的数据,这个数据包含我们成员变量和类的方法(包括构造方法)。
#|Unity学习之C#基础19——类和对象
文章图片
所以上面的this()的括号中我们同样可以加入东西,来继承一些别的东西,比如:
public Gun() { Console.WriteLine("实例创建成功!"); } public Gun(string gunName):this() { this.GunName = gunName; } public Gun(string gunName,int gunAmmoNum) : this(gunName) { this.GunAmmoNum = gunAmmoNum; }

6.类结构
#|Unity学习之C#基础19——类和对象
文章图片

7.自动属性
之前我们讲的属性的写法是包含两个方法的。一个是get,一个是set。那么我们能不能又设置字段且包含2个方法呢?那么我们引入自动属性的概念:
class LoginCls { public string LoginId{ get; set; } public string LoginPassword { get; set; } public int LoginState { get; set; } }


    推荐阅读