/*
非访问控制符有三个:static final abstract
本例是对static控制符的使用
这段程序在main方法中创建了类StaticExample的两个实例example1和example2,通过两个实例都对globalCount进行了自加操作.
由于globalCount是静态成员变量,因此两次自加操作实际是对同一个变量的操作,因此globalCount的值为2
结果输出三个2
实际使用中要访问一个表态成员,可以通过实例变量(例子中 的两次自加操作和随后的两次输出),
也可以直接通过类名(最后的那句输出).但前者不推荐使用,因为这会造成一定的混淆,使阅读代
码的人无法直观地知道globalCount是个静态成员.
一般使用后者.
注意:*************************************************************************************
1:实现各实例之间的通信
该类的任何一个对象访问该静态成员变量时,取得的都是相同的值.
2:跟踪创建的实例数,如下例所示:
public class Count{
private int serial;//实例变量
private static int counter=0;
public Count(){
counter++;
serial=counter;
}
}
3:静态成员变量类似于某些语言中的全局变量.
4:非private的静态成员变量无需创建实例就可以从类的外部访问.如下例所示
class StaticVar
{
static int x=100;
}
public class test
{
public void m(){
int m=StaticVar.x;//类名.静态成员变量名
}
}
**************************************************************************************
*/
public class StaticExample
{
static int globalCount=0;
public static void main(String[] args){
StaticExample example1=new StaticExample();
StaticExample example2=new StaticExample();
example1.globalCount++;
example2.globalCount++;
System.out.println("globalCount of example1="+example1.globalCount);
System.out.println("globalCount of example2="+example2.globalCount);
System.out.println("globalCount="+StaticExample.globalCount);
}
}