Java关键字(三)
static关键字
当我们编写一个类时,其实就是在描述其对象的属性和行为,而并没有产生实质上的对象,只有通过new关键字才会产生出对象,这时系统才会分配内存空间给对象, 其方法才可以供外部调用。
我们有时候希望无论是否产生了对象或无论产生了多少对象的情况下,某些特定的数据在内存空间里只有一份,例如所有的中国人都有个国家名称,每一个中国人都共享这个国家名称,不必在每一个中国人的实例对象中都单独分配一个用于代表国家名称的变量。
使用范围:
在Java类中,可用static修饰属性、方法、代码块、内部类
被修饰后的成员具备以下特点:
随着类的加载而加载
优先于对象存在
修饰的成员,被所有对象所共享
访问权限允许时,可不创建对象,直接被类调用
final关键字
在Java中声明类、变量和方法时,可使用关键字final来修饰,表示“最终的”状态。
1)final标记的类不能被继承。提高安全性,提高程序的可读性。 如String类、System类、StringBuffer类
2)final标记的方法不能被子类重写。比如:Object类中的getClass()。
3)final标记的变量(成员变量或局部变量)即称为常量。名称大写,且只能被赋值一次。 final标记的成员变量必须在声明时或在每个构造器中或代码块中显式赋值,然后才能使用。比如final double MY_PI = 3.14;
四种访问权限修饰符
Java权限修饰符public、protected、 (缺省)、private置于类的成员定义前,用来限定对象对该类成员的访问权限。
修饰符 | 类内部 | 同一个包 | 不同包的子类 | 同一个工程 |
---|---|---|---|---|
private | Yes | |||
(缺省) | Yes | Yes | ||
protected | Yes | Yes | Yes | |
public | Yes | Yes | Yes | Yes |
对于class的权限修饰只可以用public和default(缺省)。
➢public类可以在任意地方被访问。
➢default类只可以被同一个包内部的类访问。