Java的面向对象
18-final关键字
2021-07-06 365 0
简介 了解final关键字的使用
1. final关键字的使用
final英文翻译为最终的
final可以用来修饰的结构:类、方法、变量
final 用来修饰一个类:此类不能被其他类所继承。
比如:String类、System类、StringBuffer类
public final class String
implements java.io.Serializable, Comparable<String>, CharSequence{ ... }
final 用来修饰方法:表明此方法不可以被重写
比如:Object类中getClass();
public final native Class<?> getClass();
final 用来修饰变量:此时的"变量"就称为是一个常量, 类似C++中的const常量
final修饰属性:可以考虑赋值的位置有:显式初始化、代码块中初始化、构造器中初始化,不能使用setXxx方法进行赋值。
final修饰局部变量:
尤其是使用final修饰形参时,表明此形参是一个常量。当我们调用此方法时,给常量形参赋一个实参。一旦赋值
以后,就只能在方法体内使用此形参,但不能进行重新赋值。
static final 用来修饰属性:全局常量, static 和 final 合起来,只能修饰属性和方法。
static可以修饰, 属性、方法、代码块、内部类
final可以修饰 类、属性、方法,
那么合起来 static final 可修饰 属性、方法
public final native Class<?> getClass();
native 表示代码是C语言或者C++写的
//FinalKeyword.java package com.ylaihui.oop10; public class FinalKeyword { final int WIDTH = 0; final int LEFT; final int RIGHT; // final int DOWN; { LEFT = 1; } public FinalKeyword(){ RIGHT = 2; } public FinalKeyword(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; FinalKeyword test = new FinalKeyword(); // 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(){ // // } }
2. final修饰局部变量
局部变量:
final int NUM = 10;//常量
形参:
public void show(final int num){
// num = 20;//编译不通过
System.out.println(num);
}