配色: 字号:
java中final修饰符实例分析
2016-10-08 | 阅:  转:  |  分享 
  
java中final修饰符实例分析

本文通过实例向我们展示了java中final修饰符的概念,final修饰的基本变量和引用类型变量的区别。有需要的小伙伴可以参考下

final修饰符:final修饰成员变量必须有程序员显示指定初始值。类的Field:必须在静态初始化块中或声明该Field时指定初始值。实例Field:必须在非静态初始块中,声明Field或者构造器中指定初始值。final局部变量:必须由程序员显示初始化。final修饰的基本变量和引用类型变量的区别?final修饰的基本变量:不能对基本变量重新赋值。final修饰的引用变量:只保证这个引用类型所引用的地址不会变,即一直引用同一个对象,但这个对象完全可以发生改变。

复制代码代码如下:

//importjava.util.;publicclassDemo5{publicstaticvoidmain(String[www.hunanwang.net]args){finalBb=newB(22);b.test();//合法改变值,但仍是指向同一个引用b.setAge(20);System.out.println(b.getAge());//非法//b=null;b.test2();}}/fianl修饰成员变量/classA{//合法finalinta=10;//构造器或初始化化块中指定初始值finalStringstr;finalintc;finalstaticdoubled;{str="hello";//非法//a=100;}static{d=100;}//构造器可对没在初始化块中指定的Field指定初始值publicA(www.visa158.com){//非法//str="ddd";c=1000;}publicdoublechangFinal(){//不能再普通方法中为final指定初始值//returnd=1000.90;return0;}}/fianl修饰数组对象/classB{privateintage;publicB(){}publicB(intage){this.age=age;}publicvoidsetAge(intage){this.age=age;}publicintgetAge(){returnthis.age;}publicvoidtest(){finalint[]arr={23,434,56,898};System.out.println(Arrays.toString(arr));Arrays.sort(arr);System.out.println(Arrays.toString(arr));arr[2]=200;System.out.println(Arrays.toString(arr));//下面对Arr重新赋值非法//arr=null;}/加深对final的理解/publicvoidtest2(){Stringstr1="美好未来";//直接引用常量池中的"美好未来"Stringstr2="美好"+"未来";//trueSystem.out.println(str1==str2);Strings1="美好";Strings2="未来";Strings3=s1+s2;//falses1s2只是变量在编译时期不能确定//若想在编译时期确定则用final修饰s1s2System.out.println(str1==s3);}}

小伙伴们是否对java中final修饰符有所了解了呢,相信注释中已经给大家解释的很清楚了,我这里就不再啰嗦























献花(0)
+1
(本文系白狐一梦首藏)