Java之final关键字
Posted zengblogs
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java之final关键字相关的知识,希望对你有一定的参考价值。
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关键字的主要内容,如果未能解决你的问题,请参考以下文章