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

Unity学习之C#基础19——类和对象_第1张图片

 1.什么是类和对象

Unity学习之C#基础19——类和对象_第2张图片

 2.类的创建

Unity学习之C#基础19——类和对象_第3张图片

 3.成员变量

Unity学习之C#基础19——类和对象_第4张图片

 下面我们看一下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张图片

 5.构造函数

定义:

Unity学习之C#基础19——类和对象_第6张图片

 特点:

Unity学习之C#基础19——类和对象_第7张图片

 实例:

        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——类和对象_第8张图片 所以上面的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——类和对象_第9张图片

 7.自动属性

之前我们讲的属性的写法是包含两个方法的。一个是get,一个是set。那么我们能不能又设置字段且包含2个方法呢?那么我们引入自动属性的概念:

    class LoginCls
    {
        public string LoginId{ get;set; }
        public string LoginPassword { get; set; }
        public int LoginState { get; set; } 
    }

你可能感兴趣的:(#,游戏开发脚本C#,c#,unity)