halisi7

一个专注技术的组织

0%

Java面向对象3-final关键字

final:最终的

image-20220120161713792

  1. final可以用来修饰的结构:类、方法、变量

  2. final 用来修饰一个类:此类不能被其他类所继承。

      比如:String类、System类、StringBuffer类
    
  3. final 用来修饰方法:表明此方法不可以被重写

         比如:Object类中getClass();
    
  4. final 用来修饰变量:此时的”变量”就称为是一个常量

     4.1 final修饰属性:可以考虑赋值的位置有:显式初始化、代码块中初始化、构造器中初始化
     4.2 final修饰局部变量:
         尤其是使用final修饰形参时,表明此形参是一个常量。当我们调用此方法时,给常量形参赋一个实参。一旦赋值
         以后,就只能在方法体内使用此形参,但不能进行重新赋值。
    

static final 用来修饰属性:全局常量

Demo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
public class FinalTest {

final int WIDTH = 0;
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;
}


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{

// public void show(){
//
// }
}

面试题:

image-20220120162046934

打赏一下作者~ ฅ( ̳• ◡ • ̳)ฅ