码迷,mamicode.com
首页 > 编程语言 > 详细

Java之final关键字

时间:2020-01-09 00:59:24      阅读:100      评论:0      收藏:0      [点我收藏+]

标签:ati   提高   getc   虚拟机   程序   构造函数   out   class   赋值   

final关键字概述:

在Java中声明类、变量和方法时,可使用关键字final来修饰,表示“最终的”。

final是最终的意思,可以修饰类、变量、成员方法。

1.修饰类: 禁止被继承。

2.修饰变量: 变量被final修饰,该变量的值在被首次赋值之后,就不能在被重复赋值。

3.final修饰成员方法: 一旦父类中的方法被final修饰,不能被子类所覆盖 。

final修饰变量:

1.修饰成员变量:必须在定义时初始化, 不包快虚拟机默认。

2.修饰局部变量:可以在定义时初始化。

注意事项:

1.final标记的类不能被继承。目的是提高安全性,提高程序的可读性。

比如String类、System类、StringBuffer类。

2.final标记的方法不能被子类重写,比如Object类中的getClass()。

3.final标记的变量(成员变量或局部变量)即称为常量。

名称大写,且只能被赋值一次。

4.final标记的成员变量必须在声明时或在每个构造器中

或代码块中显式赋值,然后才能使用。

5.static final为全局常量。

 1 /*
 2 final修饰变量时分为2种情况:(初始化时机)
 3     1.修饰成员变量:必须在定义时初始化, 不包快虚拟机默认
 4     2. 修饰局部变量:可以在定义时初始化
 5 
 6 */
 7 public class finalDemo {
 8 }
 9 
10 class A{
11     final int a1;
12     //构造函数赋初值
13     public A(int num) {
14         a1 = num;
15     }
16     final int a2 = 99;
17     final int a3;
18 
19     //构造代码块
20     {
21         a3 = 10;
22     }
23 }
 1 public class KeyOfFinal {
 2   public static void main(String[] args) {
 3     //final修饰变量
 4     final int i = 0;
 5     System.out.println(i);
 6     //i = 1;
 7 
 8     //研究被final修饰的变量,初始化时机
 9     final int ii;
10     ii = 10;
11     System.out.println(i);
12   }
13 }
14 
15 // 被final修饰的类不能被其他类继承
16 class FinalFather{
17   //被final修饰的父类方法不能被子类覆盖
18   final int i;
19   public FinalFather() {
20     i = 10;
21   }
22   public FinalFather(int j) {
23     i = 1000;
24   }
25 }
26 class FinalSon extends FinalFather{
27 }
 1 public final class Test {
 2     public static int totalNumber = 5;
 3     public final int ID;
 4 
 5     public Test() {
 6         //可在构造器中给final修饰的“变量”赋值
 7         ID = ++totalNumber;
 8     }
 9 
10     public static void main(String[] args) {
11         Test t = new Test();
12         System.out.println(t.ID);
13         final int I = 10;
14         final int J;
15         J = 20;
16         J = 30;//非法
17     }
18 }        

Java之final关键字

标签:ati   提高   getc   虚拟机   程序   构造函数   out   class   赋值   

原文地址:https://www.cnblogs.com/ZengBlogs/p/12169173.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!