关键字:final
1.final(最终的):可以用来修饰的结构有:类、方法、变量
(1)final 用来修饰一个类
- 此类不能被其他类所继承
- 比如:String类、System类、StringBuffer类
(2)final 用来修饰方法:
- 表明此方法不可以被重写
- 比如:Object类中getClass();
(3)final 用来修饰变量:此时的“变量”就称为是一个常量。
①final修饰属性,可以考虑赋值的位置有:显式初始化、代码块中初始化、构造器中初始化
(加载创建对象,final在加载后必须已经附上值才行)
②final修饰局部变量:尤其是使用final修饰形参时,表明此形参是一个常量。当我们调用此方法时,给常量形参赋一个实参,一旦赋值以后,就只能在方法体内使用此形参,但不能进行重新赋值。
(4)static final:用来修饰属性:全局常量
代码:
package test3;
public class FinalTest {
final int WIDTH = 10;
final int LEFT;
final int RIGHT;
// final int DOWN;
{
LEFT = 1;
}
public FinalTest() {
RIGHT = 2;
}
public FinalTest(int n) {
RIGHT = n;
}
// public void setDown(int down) {
// this.DOWN = down;
// }
public void doWidth() {
// width = 20;//The final field FinalTest.width cannot be assigned
}
public void show() {
final int NUM = 10;// 常量
// NUM += 20;//无法进行
}
public void show(final int num) {
// num = 20;//报错,编译不通过
System.out.println(num);
}
public static void main(String[] args) {
int num = 10;
num = num + 5;
FinalTest test = new FinalTest();
// test.setDown(6);
test.show(10);
}
}
final class FinalA {
}
//class B extends FinalA{
//
//}
//class C extends String{
//
//}
class AA {
public final void show() {
}
}
class BB extends AA {
// public void show() {//不能重写
//
// }
}
输出:
10