Java——final关键字
Posted 放弃不难,但坚持一定很酷
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java——final关键字相关的知识,希望对你有一定的参考价值。
3.3 final关键字
3.3.1 final的定义
在Java中声明类、属性和方法时,可使用关键字final来修饰,表示“最终”。
①final标记的类不能被继承。提高安全性,提高程序的可读性。
String类、System类、StringBuffer类
②final标记的方法不能被子类重写。
Object类中的getClass()。
③final标记的变量(成员变量或局部变量)即称为常量。名称大写,且只能被赋值一次。
final标记的成员变量不能使用默认初始化,必须在声明的同时或在每个构造方法中或代码块中显式赋值,然后才能使用。final double PI=3.14;
变量用static final修饰:全局常量。比如:Math 类的PI。
④要与finally finalize()区分开。
3.3.2 final基础语法
①final修饰类
final class A{ } class B extends A{ //错误,不能被继承。 } |
中国古代,什么人不能有后代,就可以被final声明,称为太监类
②final修饰方法
class A{ public final void print(){ System.out.println(“A”); } } class B extends A{ public void print(){ //错误,不能被重写。 System.out.println(“尚硅谷”); } } |
③final修饰变量——常量
class A{ private final String INFO = “atguigu”; //声明常量 public void print(){ //INFO = “尚硅谷”; } } |
常量名要大写,内容不可修改。——如同古代皇帝的圣旨。
④ final修饰的成员变量:一般和static联用。
class MyMath{ //常量.java规范中要求所有的常量“大写” //常量:值不可再改变的变量. public static final double PI = 3.14; } |
⑤关键字final应用举例:
public final class Test{ public static int totalNumber = 5 ; public final int ID; public Test(){ ID = ++totalNumber; //可在构造方法中给final变量赋值 } public static void main(String[] args) { Test t = new Test(); System.out.println(t.ID); final int I = 10; final int J; J = 20; J = 30; //非法 } } |
⑥深入final:
final修饰的引用类型,该引用不可再重新指向其他的java对象。但是fianl修饰的引用,该引用指向的对象的属性是可以修改的。
public class Test02{ public static void main(String[] args){ final Customer c = new Customer("JACK",15); //c是final的,无法重新赋值。 //c = new Customer("LUCY",20);//Error c.name = "李四"; c.age = 25; System.out.println(c.name); System.out.println(c.age); } } class Customer{ String name; int age; Customer(String name,int age){ this.name = name; this.age = age; } } |
以上是关于Java——final关键字的主要内容,如果未能解决你的问题,请参考以下文章
Java学习笔记3.6.2 final关键字 - final修饰方法