纸上得来终觉浅
Think in java:Final关键字可以修饰数据,方法和类:
1)修饰数据:
A:修饰基础数据类型: 表示值不可改变
B:修饰非基础数据类型:表示句柄不可改变
C:修饰自变量:包含上述两种情况,只是所修饰的内容是方法的参数
2)修饰方法:
A:表示方法不可被重写
B:在运行期间可能会提高效率:
在需要使用方法的时候直接复制一份代码,以空间换时间。
3)修饰类
表示类不能被继承(未在示例中体现,手动测试下即可)
示例:
package roadArchitectWeb.Test;
class Test{
public int i = 11;
}
public class Test1{
/*1.final修饰基础类型变量*/
public final int a=10;
/*2.final修饰非基础类型变量*/
public final Test test = new Test();
/*1和2不仅可以应用在类的成员变量中,还可以应用在方法的自变量中*/
public void prt(final Test test){
// test = new Test(); /*不能更改test的句柄*/
System.out.println("Test1.prt()");
}
/*final修饰方法*/
public final void print(){
System.out.println("Test1.print()");
}
public static void main(String[] args) {
Test1 test1 = new Test1();
// test1.a = 11; /*不能更改a的值*/
// test1.test = new Test(); /*不能更改test的句柄*/
test1.prt(new Test());
}
}
package roadArchitectWeb.Test;
public class doTest1 extends Test1{
public void prt(){
}
// public void print(){ /*无法被重写*/
//
// }
}