基本概念:
使用static关键字修饰成员变量表示静态的含义,此时成员变量由对象层级提升为类层级,也就是整个类只有一份并被所有对象共享,
该成员变量随着类的加载准备就绪,与是否创建对象无关。
static关键字修饰的成员可以使用引用.的方式访问,但推荐类名.的方式。
案例1:static关键字的作用
以上代码我们可以输出分别是:姓名、年龄、国籍,我们创建两个引用变量实例化该类,如下图所示:
我们可以看出,P1和P2假定是我们的引用变量指向堆区,而堆区中分别建立两块独立的内存空间,他们的共同点在于
国籍是一样的,但是分别存储会造成浪费。
此时我们应该这样写代码:
private static String country;//隶属于类层级,也就是整个类只有一份并且被所有对象共享
上图清晰地指出了,我们把country静态成员变量,上升为类级共享存储在方法区中
使用方式:
在非静态成员方法中既能访问非静态的成员又能访问静态的成员。
(成员:成员变量+成员方法,静态成员被所有对象共享)
在静态成员方法中只能访问静态成员不能访问非静态成员。
(成员:成员变量+成员方法,因为此时可能还没有创建对象)
在以后的开发中只有隶属于类层级并被所有对象共享的内容才可以使用static关键字修饰。
(不能滥用static关键字)