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