java提高篇—–关键字final

      在程序设计中,我们有时可能希望某些数据是不能够改变的,,这个时候final就有用武之地了。final是java的关键字,它所表示的是“这部分是无法修改的”。不想被改变的原因有两个:效率、设计。使用到final的有三种情况:数据、方法、类。

一、 final数据

      有时候数据的恒定不变是很有用的,它能够减轻系统运行时的负担。对于这些恒定不变的数据我可以叫做“常量”。“常量”主要应用与以下两个地方:

      1、编译期常量,永远不可改变。

      2、运行期初始化时,我们希望它不会被改变。

      对于编译期常量,它在类加载的过程就已经完成了初始化,所以当类加载完成后是不可更改的,编译期可以将它代入到任何用到它的计算式中,也就是说可以在编译期执行计算式。当然对于编译期常量,只能使用基本类型,而且必须要在定义时进行初始化。

      有些变量,我们希望它可以根据对象的不同而表现不同,但同时又不希望它被改变,这个时候我们就可以使用运行期常量。对于运行期常量,它既可是基本数据类型,也可是引用数据类型。基本数据类型不可变的是其内容,而引用数据类型不可变的是其引用,引用所指定的对象内容是可变的。

public class Person {private String name;Person(String name){this.name = name;}public String getName() {return name;}public void setName(String name) {this.name = name;}}public class FinalTest {String final_02;Random random = new Random();final_03 = random.nextInt(50); //使用随机数来进行初始化Person final_04 = new Person("chen_ssy"); //final指向引用数据类型FinalTest(String final_02){this.final_02 = final_02;}public String toString(){return "final_01 = " + final_01 +" final_02 = " + final_02 + " final_03 = " + final_03 +" final_04 = " + final_04.getName();} main(String[] args) {System.out.println("————第一次创建对象————");FinalTest final1 = new FinalTest("cm");System.out.println(final1);System.out.println("————第二次创建对象————");FinalTest final2 = new FinalTest("zj");System.out.println(final2);System.out.println("————修改引用对象————–");final2.final_04.setName("chenssy");System.out.println(final2);}}——————Output:————第一次创建对象————final_01 = chenssy final_02 = cm final_03 = 34 final_04 = chen_ssy————第二次创建对象————final_01 = chenssy final_02 = zj final_03 = 46 final_04 = chen_ssy————修改引用对象————–final_01 = chenssy final_02 = zj final_03 = 46 final_04 = chenssy积极的人在每一次忧患中都看到一个机会,

java提高篇—–关键字final

相关文章:

你感兴趣的文章:

标签云: