【Java】【TIJ】验证类中的static域只有一份存储空间,与类实例化的对象个数无关。

来源:互联网 发布:网络监视软件 编辑:程序博客网 时间:2024/06/05 15:07

static的用途:定义静态成员、静态方法

static特点:属于类;无论实例化多少个对象,static域只占用一份内存

调用方法:直接用类名调用或者用类实例化的对象来调用

   

    类中的static域包括两种,一种是static的成员,一种是static的方法。它们都是只属于类,并不是属于

某个对象的。它们可以用类名直接调用。

     当然也可以使用对象来调用。但是至始至终,它们只存在在一份内存中。静态的方法可以类中其他的

静态方法和静态的成员,不可调用非静态的方法和非静态的成员;非静态的方法可以随便调用,不受限制。


/**验证类中的static域不管创建了多少个对象,static域只有一个实例:w*Thinking in Java Test 2.8*@author:WolfOfSiberian**/public class TIJ_Test2_8{static int a=0;public TIJ_Test2_8(){a++;//System.out.println("a="+a);}public static void main(String args[]){TIJ_Test2_8 test1=new TIJ_Test2_8();System.out.println("test1.a="+test1.a);TIJ_Test2_8 test2=new TIJ_Test2_8();System.out.println("test2.a="+test2.a);TIJ_Test2_8 test3=new TIJ_Test2_8();System.out.println("test3.a="+test3.a);TIJ_Test2_8 test4=new TIJ_Test2_8();System.out.println("test4.a="+test4.a);TIJ_Test2_8 test5=new TIJ_Test2_8();System.out.println("test5.a="+test5.a);TIJ_Test2_8.a=100;System.out.println("test1.a="+test1.a);System.out.println("test2.a="+test2.a);System.out.println("test3.a="+test3.a);System.out.println("test4.a="+test4.a);System.out.println("test5.a="+test5.a);}}


    执行结果如下,构造函数中对成员a的修改反应到了每个新建的对象中。同时使用类来调用a,修改其值,

修改后的值反映到了所有的对象中。


test1.a=1
test2.a=2
test3.a=3
test4.a=4
test5.a=5
test1.a=100
test2.a=100
test3.a=100
test4.a=100
test5.a=100


0 0
原创粉丝点击