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.构造函数
定义:
特点:
实例:
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; }
}