关键字final
- final:最终的
- 1.final可以用来修饰的结构:类、方法、变量
- 2.final 用来修饰一个类:此类不能被其他类继承。
- 比如:String类、System类、StringBuffer类
- 3.final 用来修饰一个方法:表明此方法不能被重写
- 比如:Object类的getClass();
- 4.final 用来修饰变量:此时的“变量”就称为一个常量
- 4.1 final修饰属性:可以考虑的位置有:显示初始化、代码块中初始化、构造器中初始化
- 4.2 final修饰局部变量
- 尤其是final修饰形参时,表明形参是常量。当我们调用此方法时,给常量形参赋一个实参。一旦赋值以后,就只能在方法体内使用此形参,但不能进行重新赋值。
- static final 用来修饰属性:全局常量
在B站学习java写的代码
代码如下
/* * final:最终的 * * 1.final可以用来修饰的结构:类、方法、变量 * * 2.final 用来修饰一个类:此类不能被其他类继承。 * 比如:String类、System类、StringBuffer类 * * 3.final 用来修饰一个方法:表明此方法不能被重写 * 比如:Object类的getClass(); * * 4.final 用来修饰变量:此时的“变量”就称为一个常量 * 4.1 final修饰属性:可以考虑的位置有:显示初始化、代码块中初始化、构造器中初始化 * 4.2 final修饰局部变量 * 尤其是final修饰形参时,表明形参是常量。当我们调用此方法时,给常量形参赋一个实参。一旦赋值 * 以后,就只能在方法体内使用此形参,但不能进行重新赋值。 * * static final 用来修饰属性:全局常量 * * */
FinalTest类
package com.day0130_1; public class FinalTest { // final int WIDTH;//The blank final field width may not have been initialized final int WIDTH=10; final int LEFT; final int RIGHT; // final int DOWN; { LEFT=1; } public FinalTest(){ RIGHT=2; } public FinalTest(int n){ RIGHT=n; } // public void setDown(int down) {//The final field FinalTest.DOWN cannot be assigned // this.DOWN=down; // } public void doWidth() { // WITDH=20;//WITDH cannot be resolved to a variable } public void show() { final int NUM=10;//常量 // NUM+=20;//The final local variable NUM cannot be assigned. It must be blank and not using a compound assignment } public void show(final int num) { // num=20;//编译不通过 System.out.println(num); } public static void main(String[] args) { int num=10; num=num+5; FinalTest test=new FinalTest(); // test.setDown(3); test.show(10); } } final class FinalA{ } //class B extends FinalA{//The type B cannot subclass the final class FinalA // //} //class C extends String{//The type C cannot subclass the final class String // //} class AA{ public final void show() { } } class BB extends AA{ // public void show() {// Cannot override the final method from AA // // } }