深入理解Java中的final关键字

将变量、方法和类声明为final代表了什么?使用final的好处是什么?最后也有一些使用final关键字的实。final经常和static一起使用来声明常量。

、final方法在编译阶段绑定,称为静态绑定(staticbinding),编译时常量,永远不可改变。2、运行期初始化,我们希望它不会改变。3、接口中声明的所有变量本身是final的。4、对于集合对象声明为final指的是引用不能被更改,但是你可以向其中增加,删除或者改变内容。譬如:

privatefinalListLoans=newArrayList();list.add(“homeloan”);//validlist.add("personalloan");//validloans=newVector();//notvalid

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

publicclassFinalText{privatefinalStringfinal0="hansheng";//编译期常量,必须要进行初始化,且不可更改privatefinalStringfinal02;//构造器常量,在实例化一个对象时被初始化privatestaticRandomrandom=newRandom();privatefinalintfinal03=random.nextInt(50);//使用随机数来进行初始化//基本数据类型不可变的是其内容,而引用数据类型不可变的是其引用,引用所指定的对象内容是可变的。publicfinalPersonfinal04=newPerson("hansheng");//final指向引用数据类型publicFinalText(Stringfinal02){this.final02=final02;}

OverridepublicStringtoString(){return"final0="+final0+"final02="+final02+"final03="+final03+"final04="+final04.getName();}publicstaticvoidmain(String[]args){System.out.println("---------第一次创建对象------");FinalTextfinal=newFinalText("cm");System.out.println(final);System.out.println("---------第二次创建对象------");FinalTextfinal2=newFinalText("zj");System.out.println(final);System.out.println("---------修改引用对象------");final2.final04.setName("hanming");System.out.println(final2);}}publicclassPerson{privateStringname;Person(Stringname){this.name=name;}publicStringgetName(){returnname;}publicvoidsetName(Stringname){this.name=name;}}final关键字的含义?

final在Java是一个保留的关键字,可以声明成员变量,方法,类以及本地变量。一旦你将引用声明做final,你将不能官弁这个引用了,编译器会检查代码,如果你将试图将变量再次初始化的话,编译器会报编译错误。

什么事final变量?

凡是对成员变量或者本地变量(在方法中的常量或者代码块中的变量称为本地变量)声明为final的都叫做final变量(编译时常量)。final变量经常和static关键字一起使用,作为变量

publicstaticfinalStringLOAN="loan";LOAN=newString("loan");//invalid







































白癜风哪里治疗的最好
北京白癜风医院



转载请注明:http://www.jiaju1314.com/zyyd/1366.html