- public class StaticTest {
- private static StaticTest st1 = new StaticTest();
- private static int a ;
- private static int b = 0 ;
- private int c ;
- private int d = 0 ;
- public StaticTest() {
- super();
- a ++ ;
- b ++ ;
- c ++ ;
- d ++ ;
复制代码 结果是 11 1011
这段代码无意中看到,觉得对我们理解静态很有帮助,首先看第一静态就创建了了一个本类对象 new StaticTest()
然后就会调用构造函数,然后构造函数去初始化成员变量a,b,c,d,然后进行加1的动作,a,b,c,d的值都是1,1,1,1
然后 ,往后读静态,a没有赋值,b重新赋值0,于是成为了 abcd 1011,然后查阅StaticTest.a和StaticTest.b为1,0
说明了StaticTest静态单独就是一个类,新建立了对象后即便用st.a和st.b仍然指向StaticTest.a和StaticTest.b
希望大神能指导下是不是这样的?
|
|