1.在类中,用static声明的成员变量是静态成员变量,是类的公共变量,在第一次使用时被初始化,这个变量并不属于某个对象,而是所有对象公共的成员变量,只有一份。
在内存中,我们知道对象的引用存储在堆区,而他们的成员变量也储存在对象中。而静态的成员变量却储存在data区中。由此可见静态的成员变量只有一份。
[img]http://dl.iteye.com/upload/attachment/0072/5342/8e88cc11-315d-3ecb-b197-b5e23e537b2c.png[/img]
2.用static声明的方法为静态方法,在调用方法时,不会把对象的引用传递给他,所以静态方法中不能访问非静态的成员变量。
3.可以通过对象引用或类名访问静态成员变量或静态方法。
在内存中,我们知道对象的引用存储在堆区,而他们的成员变量也储存在对象中。而静态的成员变量却储存在data区中。由此可见静态的成员变量只有一份。
package 关键字;
public class TestStatic {
private String name;
private static int count;
//重载构造器
public TestStatic(String name){
this.name = name;
count++;
}
public static void main(String[] args) {
TestStatic ts1 = new TestStatic("yuyang");
TestStatic ts2 = new TestStatic("yang");
System.out.println(TestStatic.count);
}
}
[img]http://dl.iteye.com/upload/attachment/0072/5342/8e88cc11-315d-3ecb-b197-b5e23e537b2c.png[/img]
2.用static声明的方法为静态方法,在调用方法时,不会把对象的引用传递给他,所以静态方法中不能访问非静态的成员变量。
3.可以通过对象引用或类名访问静态成员变量或静态方法。
private static int count;
public static void main(String[] args) {
System.out.println(TestStatic.count);
}