public class Singleton { public static Singleton singleton = new Singleton(); public static int a; public static int b = 0; private Singleton() { super(); a++; b++; } public static Singleton GetInstence() { return singleton; } public static void main(String[] args) { Singleton mysingleton = Singleton.GetInstence(); System.out.println(mysingleton.a); System.out.println(mysingleton.b); } }
3 回答
慕姐4208626
TA贡献1852条经验 获得超7个赞
1、public static Singleton singleton = new Singleton(); 这句代码把最原始的a,没赋值系统默认为0,通过a++赋值为1,b通过b++赋值为1
2、public static int a; 初始化a,因为a没被赋值则维持原来的1
3、public static int b = 0;初始化b,因为有赋值则,b的值由1改为0
子衿沉夜
TA贡献1828条经验 获得超3个赞
要明白static的作用,暂且把它作为c语言包里卖弄的全局变量,所以要知道创建单个实例无法改变变量,在变量声明中,a尚未赋值,b已赋值为0,所以在你主方法里面无法改变,至于a在super被赋值,相当于已经在内存中赋值了,随后也不可改变,所以a=1,b=0
- 3 回答
- 0 关注
- 327 浏览
添加回答
举报
0/150
提交
取消