天天看点

静态、构造方法

在java笔记中已经有关于静态的说明,c#学习中,再次记录下。

同一静态变量或方法,共享内存,共用同一块内存区域。其值会被多个对象改变。

可以理解为,盒子中只有一个苹果,张三咬了一口,李四从此盒子中拿取苹果时,是被咬过的苹果。

同一命名空间下的所有类都可以使用或改变全局静态变量,它只保留最新值。如在类globalvariable中定义了public static string result,那么在其他类中可以globalvariable.result="最新值",或使用globalvariable.result。

静态变量先按顺序分配内存,全部分配完后,再按顺序赋值。(两轮)

分配内存时:整型数据默认值为0,单精度数据为0.0f,双精度数据为0.0,布尔型数据为false,引用型数据string为null。

new类的对象时,这个类内的所有变量都已赋值完毕。

以上代码过程如下:

1、静态变量由上到下先初始化,i,num都为0,静态方法getnum返回的num=0。

2、静态变量由上到下赋值,i等于getnum方法的返回值0,num=1,静态方法getnum返回的num=1

3、new class1()后,class1中的量,都已赋值完毕。即此时j=1

所以最终,i=0,j=1

【实例】静态方法只能被创建一次(内存唯一),非静态方法可被多次创建。

静态、构造方法

关于构造方法:方法名与类名相同的方法被称作构造方法。

特点如下:

1、没有返回类型,甚至连void也没有。

2、构造方法的调用是在创建一个对象时使用new操作进行的。构造方法的作用是初始化对象。

3、构造方法在创建对象时自动执行,一般不能显式地直接调用。

4、每个类可以有零个或多个构造方法。

5、不能被static、final、synchronized、abstract和native修饰。构造方法不能被子类继承。

【参考】

c#中的static静态变量的用法

面向对象(静态变量和成员变量的区别)