[code]public class StaticTest {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Person1.t = 100;
System.out.println("Person1.t="+Person1.t);
System.out.println("Person1.getTotalPerson()="+Person1.getTotalPerson());
Person1 c1 = new Person1();
Person1 c2 = new Person1();
System.out.println("c1.t="+c1.t);
System.out.println("c2.getTotalPerson()="+c2.getTotalPerson());
}
}
class Person1
{
public static int t=0;//设置了一个static静态成员t,初始化为0
public Person1()
{
t++;
}
public static int getTotalPerson()//定义了一个Static方法.
{
return t;
}
}[/code]关键字static作为修饰符标记变量或方法由整个类共享,若访问控制权限允许,可以不必创建类对象,直接用类名加“.”调用。
一旦类被使用到,首先加载的是它的静态变量,然后是静态初始化块,静态方法。
当此类要被构造一个对象的时候,或者用反射生成其对象的时候,加载其成员部分。依次为成员变量、非静态初始化块、非静态方法、最后才是构造器。
静态部分一旦被加载,就不会被销毁,直到程序结束,关闭虚拟机。 |