final:最终的
-
1.final可以修饰的结构:类、方法、变量
-
2.final用来修饰一个类:此类不能被其他类所继承
例如:String、System、类 -
3.final用来修饰方法:表用此方法不能被重写
例如:Object类中的getClass()方法 -
4.final修饰变量:此时的变量成为了常量,不能再修改
4.1 final修饰属性:可以考虑赋值的位置有:显示初始化、代码块中赋值、构造器中初始化
4.2 final修饰局部变量:尤其是使用final修饰形参时,表明此形参是一个常量。当调用此方法是,给常量形参赋一个实参。赋值后只能使用,不能修改。 -
static final 用来修饰属性:全局变量
public class FinalTest {
//显示初始化
// final int width;//报错
final int width = 10;
//代码块中赋值
final int left;
{
left = 1;
}
//构造器中初始化
final int right;
public FinalTest(){
right = 2;
}
public FinalTest(int n){
right = n;
}
//方法赋值:报错
// final int down;
// public void setDown(int down){
// this.down = down;
// }
public void doWidth(){
// width = 20;//final修饰,不能再修改
}
//方法里边的局部变量
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(3);
test.show(10);
}
}
final class FinalA{
}
//报错,不能被继承
//class B extends FinalA{
//
//}
//class C extends String{
//
//}
class AA{
public final void show(){
}
}
class BB extends AA{
//无法重写final方法
// public void show(){
//
// }
}