final关键字

概念

  final:关键字,最终,作为一个修饰符

特性

  1.可以修饰类、函数、变量 [例1]

  2.被final修饰的类不能被继承,为了避免被继承、被子类重写功能[例2]

  3.被final修饰的方法不可以被重写[例3]

  4.被final修饰的变量是一个常量,只能赋值一次,即可以修饰成员变量,也可以修饰局部变量[例4]

   当在描述事物时,一些数据出现的值是固定的,那么这时为了增强阅读性,都给这些值起个名字,方便阅读

   而这个值不需要改变,所以加上final修饰。作为常量,常量的书写规范多有字母都大写,如果由多个单词组成,但此间通过_连接

  5.内部类定义在类中的局部位置上时,只能访问该局部被final修饰的局部变量[例5]

示例代码

例1

 1 public class FinalDemo {
 2     public static void main(String[] args) {
 3         Son son = new Son();
 4         son.num();
 5 
 6     }
 7 }
 8 
 9 final class Son {
10     final int x = 3;
11 
12     final void num() {
13         System.out.println("我是final定义的方法"); // 我是final定义的方法
14 
15     }
16 }

例2

 1 public class FinalDemo {
 2     public static void main(String[] args) {
 3         Son son = new Son();
 4         son.num();
 5 
 6     }
 7 }
 8 
 9 final class Son {
10     final int x = 3;
11 
12     final void num() {
13         System.out.println("我是final定义的方法"); // 我是final定义的方法
14 
15     }
16 }
17 
18 class Son2 extends Son {
19 
20 }

视图

例3

 1 public class FinalDemo {
 2     public static void main(String[] args) {
 3         Son son = new Son();
 4         son.num();
 5 
 6     }
 7 }
 8 
 9 class Son {
10     final int x = 3;
11 
12     final void num() {
13         System.out.println("我是final定义的方法"); // 我是final定义的方法
14 
15     }
16 }
17 
18 class Son2 extends Son {
19     void num(){
20         
21     }
22 }

视图

例4

 1 public class FinalDemo {
 2     public static void main(String[] args) {
 3         Son son = new Son();
 4         son.num();
 5 
 6     }
 7 }
 8 
 9 class Son {
10     final static double PI_PI = 3.14;
11 
12     final void num() {
13         System.out.println("我是final定义的方法"); // 我是final定义的方法
14 
15     }
16 }

例5

 1 public class FinalDemo {
 2     public static void main(String[] args) {
 3 
 4     }
 5 }
 6 
 7 class Demo {
 8     int c = 20;
 9     final int d = 100;
10 
11     public void test() {
12         final int a = 10;
13         int b = 11;
14         System.out.println("我是局部");
15         class Demo1 {
16             public void test1() {
17                 System.out.println("我是局部内部类" + a + d + c + b);
18             }
19         }
20     }
21 }

视图

 

posted @ 2016-08-18 11:57  IT蓄水池  阅读(107)  评论(0)    收藏  举报