- 类变量/静态(static)变量/静态属性
特点:
由该类的全体对象实例共享,该变量只占同一块内存空间。
其标志是关键字static修饰。
在类加载的时候便生成了。类加载的时机如下图:
public static int count = 0;
类变量可以由类名来访问。
System.out.println("共有" + Child.count + "个小孩加入了游戏");
有关类变量的内存布局:
JDK8以前:在方法区中
JDK8以后:在堆里该类对应的class对象的最后
具体图如下:
定义类变量:
访问类变量:
可用类名、对象名,推荐用类名。
原因:类变量是随着类的加载而创建的,所以没有实例也可以访问。
静态变量的访问修饰符的访问权限和范围 和 普通属性是一样的。
使用细节:
2. 类方法
定义类方法:
调用类方法:类似类变量。
类方法应用场景:
方法中不涉及任何对象相关的成员时,如开发自己的工具类中的方法,冒泡排序、打印数组等。
例如 Math.sqrt(9);
类方法其他注意细节:
如上,静态方法中不可以用this,super关键字。
非静态方法不可以通过类名调用。
类方法中只能访问 静态变量 或 静态方法。
普通方法可以随便访问成员。