Static静态字段,静态方法,静态代码块
壹 简介
一些场景下会要求一个类的多个实例共享一个成员变量;有时候想定义一些不和具体对象关联、不需要new就调用的方法
举例:Console类的WriteLine,MessageBox的Show。这个时候就要使用静态。
所谓静态方法、静态成员是类的方法、类的成员,他不归属于任何一个对象。因此不用new出来,直接类型.静态方法()就能用了。
贰 特征
1、static变量不需要new就可以直接通过类名调用。static变量是共享的内存空间,非static变量则是对象隔离的。
2、static 方法中无法使用this关键字,因为static独立于对象存在,不是任何人的唯一。
3、static成员中只能访问static成员,不能直接访问非static成员。非static成员可以访问static成员。
叁静态代码块
1. 示例
classMyTest{ staticMyTest() { Console.WriteLine("静态代码块"); } publicMyTest() { Console.WriteLine("构造方法"); } }MyTest t1 = newMyTest(); MyTest t2 = newMyTest();2. 说明 1.静态代码块,在类第一次被使用的时候执行一次,只要用到类,哪怕没new对象(比如只是声明变量)也会被执行,且只执行一次。 2.静态代码块,在构造函数执行之前执行。3. 试题publicclassMyJingTaiDaimaKuai { publicstaticinti = test1();//最开始执行 publicintage = test2();//new的时候先执行成员变量的初始化,再执行构造函数 staticMyJingTaiDaimaKuai() { Console.WriteLine("静态代码块");//再执行 } publicMyJingTaiDaimaKuai() { Console.WriteLine("构造函数"); } publicstaticinttest1() { Console.WriteLine("test1"); return3; }
新闻热点
疑难解答