//Stu.cs
class Stu : JiChengClass
{
//定义自动属性语法:prop + tab + tab 补全
/// <summary>
/// 学生的成绩等级
/// </summary>
public string stuLevel { get; set; }
//非静态成员(实例成员:属于对象),每个对象都会创建一份此数据成员
public int dxCount { get; set; }
/*静态成员(属于类)变量
* · 使用static关键字修饰的成员变量
* · 静态成员变量属于类,类被加载时初始化,且只有一份。
* · 实例成员变量属于对象,在每个对象被创建时初始化,每个对象一份。
* · 特点:存在优先于对象,被所有对象所共享,常驻内存
*
*静态构造函数
* · 初始化类的静态数据成员。
* · 仅在类被加载时执行一次。
* · 不允许使用访问修饰符。
*
*静态方法
* · 通过引用调用实例方法时,会隐式的传递对象引用,以便在
*方法内部可以正确访问该对象成员变量。
* · 通过类名调用静态方法时,因为没有具体对象,所以在static
*方法中不能访问实例成员。
*
*静态类
* · 使用static关键字修饰的类。
* · 不能实例化,只能包含静态成员。
* · 静态类不能被继承,但是静态方法、属性都可以被继承。
*
*静态的适用性
* · 利:单独空间存储,所有对象共享,可直接被类名调用。
* · 弊:静态方法中只能访问静态成员,共享数据被多个对象访问会出现并发。
* · 适用场合:
* 1.所有对象需要共享的数据。
* 2.在没有对象前就要访问成员。
* 3.工具类适合做静态类(常用,不需要过多数据)。
*
*/
//静态成员,仅仅存储一份,每个对象都可以共享使用此数据成员
public static int dxStaticCount { get; set; }
private Random sjNum;
private int[] SZ;
//实例构造函数的作用:提供创建对象的方式,初始化类的实例数据成员。
//规范化:在构造函数里才初始化实例成员,在字段中不要初始化实例成员。
//实例代码块,可以访问实例成员,也可以访问静态成员。
public Stu()
{
sjNum = new Random();
SZ = new int[5];
dxCount++;
dxStaticCount++;
}
//静态构造函数的作用:初始化类的静态数据成员。不允许加访问修饰符。
//执行时机:类被加载时调用一次
static Stu()
{
//"非静态字段 要求 对象引用" ==> 静态代码块,只能访问静态成员。
//dxCount++;
dxStaticCount++;
}
}
|