类简介
类主要包括数据和函数成员
数据成员是类的数据,包括字段,常量和事件,其中有静态成员,也可以包含类成员。
函数成员包括方法,属性,构造函数,析构函数,运算符重载和索引器(用于数组和集合)
类属性
类属性在对外看来像是类的一个数据成员,但是属性会有一对函数或者叫属性访问器来面向外界,
接下来说明一下属性之所以存在的原因:
//当有一个私有变量需要对外送出接口时,一般这样写
private int id;
int Get_Id(){
return id;
}
void Set_Id(int Id){
id = Id;
}
//当引入属性语法,则可以这样写
private int id; //1、属性的后备变量
public int Id{
get{ //2、get 访问器
return id;
}
set{ //3、set 访问器
id = value;
}
}
//如果只是简单的操作可以这样简写,这样代码就更整洁简练了
public int Id{get; set;}
//如果访问器有更复杂的逻辑,则还是要展开写。
//除此之外 get 和 set 访问器可以设置为不同的访问属性,比如属性只读时 可以
写 private set就行或者不写也行,但是 public 属性要必须要对一个访问器生效
类方法
创建类方法
public int fun(int a, int b[]);
参量传递
数组和引用变量是引用传递,值变量需要引用传递需要加上 ref 前缀
比如
public int fun(int a, int b[]); //a 是值传递 b是引用传递
public int fun(ref int a, int b[]); //a 和 b都是引用传递
调用时 fun(ref a,b);//调用时也要加ref 关键词
当搞不清顺序时的传参
fun (b: m, a:n); //b 是方法定义时的参数名,m是传入的参数
当参数存在默认值时
定义 public int fun( int b[],int a=1);
不修改默认值则可以 fun(m);// a默认值
要修改默认值时 fun(m,n); //a不再是默认值
重载,当需要的参数,数量,类型,位置不一样时
可以重载。
返回值,修饰符不一样不可以重载,需要改变函数名
构造函数
公有构造函数 在执行 new 方法时调用,每创建一个类实例,调用一次。
public Class_A();
私有构造 private 或者 protect, 不能执行 new 方法,不能用来创建类实例
private Class_B();
静态构造 不能执行 new 方法,只用来初始化静态字段,在程序中类出现时进行调用一次,以后不再调用
static Class_C();
多个构造函数时的相互调用
public Class_a( int m):this(m,n){ //执行顺序是 先this(m,n)
}
只读字段 readonly
只在构造函数中赋值一次,如果是静态(static)只读字段,则要在静态构造函数中初始化,如果不是则在共有构造函数中初始化
析构函数(终结器)
用来释放动态分配的内存空间