尚硅谷JavaSE基础
7.2 static关键字
7.2.1 static关键字含义
1. 为什么要使用static
有一些数据不必要隶属于每个对象, 例如Chinese类的country属性就应该是China,并且所有对象都应该是相同的, 这样的数据就可以声明成static的, 这样的数据就隶属于类, 通过类就可以直接访问, 当然通过对象也可以访问.
有一些方法也是相同的道理, 可以被static修饰, 这样的方法只需要通过类调用即可, 不需要创建对象.
当我们编写一个类时,其实就是在描述其对象的属性和行为,而并没有产生实质上的对象,只有通过new关键字才会产生出对象,这时系统才会分配内存空间给对象,其方法才可以供外部调用。我们有时候希望无论是否产生了对象或无论产生了多少对象的情况下,某些特定的数据在内存空间里只有一份,例如所有的中国人都有个国家名称,每一个中国人都共享这个国家名
2. 使用了static后的变化
使用了static以后的数据不再是不确定的, 就像对象的创建就是不确定的(也可称之为动态), static是确定的, 和动态形成对比, 所以称之为静态.
3.使用范围:
在Java类中,可用static修饰属性、方法、代码块、内部类
4.被修饰后的成员具备以下特点:
- 随着类的加载而加载
- 优先于对象存在
- 修饰的成员,被所有对象所共享
- 访问权限允许时,可不创建对象,直接被类调用