- 在类中,用static声明的成员变量为静态成员变量,它为该类的公用变量,在第一次使用时被初始化,对于该类的所有对象来说,static成员变量只有一份。
- 用static声明的方法为静态方法,在调用该方法时,不会将对象的引用传递给它,所以在static方法中不可访问非static的成员。
- 静态方法不再是针对某个对象调用,所以不能访问非静态成员
- 可以通过对象引用或类名(不需要实例化)访问静态成员。
public class Cat { private static int sid = 0; private String name; private int id; Cat(String name){ this.name = name; id = sid++; } public void info(){ System.out.println("My name is "+name+" No."+id); } public static void main(String[] args) { Cat.sid = 100; Cat mimi = new Cat("mimi"); Cat pipi = new Cat("pipi"); mimi.info(); pipi.info(); } }
运行结果:
My name is mimi No.100
My name is pipi No.101
内存分析: