Static作用于代码块:称作静态代码块(可以初始化static field,不能初始化非static field;
Static作用于methods
1. Static方法只能访问static 方法,不能访问非static 方法
2. Static 方法只能访问static field, 不能访问非static field
3. 非static 方法可以访问static fields 和 static methods
4. Static method的两种访问方式oject.method class.method, 非static method只有object.method一种访问方式
5. Static method中不支持this和super
Static 不可以作为局部变量(局部变量包括:函数级局部变量和块级局部变量)
Final修饰符:
1. Final class该类不能被继承(不能有abstract final class)(final class内的method自动为final,但不包括field)
2. Final method可以被继承但不能被override 不能有abstract final method
3. Final field该属性不能被重新赋值(可以被继承,但不可以修改)
3.1 定义时可以初始化,也可以不初始化,而在语句块中初始化或者构造函数中初始化(最晚要在构造函数中初始化,只能初始化一次)
3.2 Final field只能人为赋值一次
3.3 继承与父类的final field不能被修改
3.4 Final可以修饰局部变量表示局部常量(方法级局部变量(形参及局部变量,方法体级局部变量)或块级局部变量)
Abstract修饰符:
1. Abstract class该类不能实例化对象
2. Abstract class该类可以不包含abstract method,但是只要有一个abstract method那么该类必须为abstract class
3. Abstract method 该方法没有方法体,需要被override
4. Abstract class的子类要么实现其父类全部的abstract method,要么也是一个abstract class
5. Abstract 不能修饰 field
6. Abstract不能修饰局部变量(方法级局部变量(形参级局部变量,方法体级局部变量)或块级局部变量)
Final、static、abstract之间的关系:
1. Final、abstract不能共存(无论在类、方法、属性、局部变量上都不能共存)
2. Static、abstract不能共存(无论在类、方法、属性、局部变量上都不能共存)
3. 可以出现final static field(该类成员属性不能被修改)
4. 可以出现final static method(该类成员方法不能被override)
|