#|Unity学习之C#基础19——类和对象
文章图片
1.什么是类和对象
文章图片
2.类的创建
文章图片
3.成员变量
文章图片
下面我们看一下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的方法。作用如下:
文章图片
5.构造函数
定义:
【#|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的用法:从浅层的意义上讲,就是调用当前类的数据,这个数据包含我们成员变量和类的方法(包括构造方法)。
文章图片
所以上面的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.类结构
文章图片
7.自动属性
之前我们讲的属性的写法是包含两个方法的。一个是get,一个是set。那么我们能不能又设置字段且包含2个方法呢?那么我们引入自动属性的概念:
class LoginCls
{
public string LoginId{ get;
set;
}
public string LoginPassword { get;
set;
}
public int LoginState { get;
set;
}
}
推荐阅读
- 慢慢的美丽
- 开学第一天(下)
- 奔向你的城市
- 学无止境,人生还很长
- 由浅入深理解AOP
- “成长”读书社群招募
- 继续努力,自主学习家庭Day135(20181015)
- python学习之|python学习之 实现QQ自动发送消息
- 每日一话(49)——一位清华教授在朋友圈给大学生的9条建议
- 小影写在2018九月开学季