final關(guān)鍵字

final的特點(diǎn)

????????final的中文意思是最終,既然是最終就是已經(jīng)結(jié)束了,無(wú)法再改變了。在Java里面final關(guān)鍵字同樣也有著類(lèi)似的功能。

????????final修飾的類(lèi)無(wú)法被繼承。例1

????????final修飾的方法無(wú)法被重寫(xiě)。例2

????????final修飾的局部變量,一旦賦值,不可再改變。例3

????????final修飾的成員變量必須初始化值。例4

例1:

? ??final class? A{}

? ?class? ? B????extends? ?A{}//error無(wú)法繼承


例2:

class????A{

? ? public????final????void????m1(){}

}class????Bextends????A{

? ? public????void????m1(){}//error無(wú)法重寫(xiě)

}


例3:

clas????sA{

? ? public????void????m1(){

? ? ? ? //聲明? ? ? ?

????????final int i;

? ? ? ? //第一次賦值? ? ? ? i = 100;

? ? ? ? //error不能重新賦值? ? ? ? i = 1200;

? ? }

}


例4:

class????A{

? ? //final修飾的成員變量必須手動(dòng)初始化.? ?

?????????final int i = 100;

? ? //error必須進(jìn)行初始化??

?????????final int k;

? ? //final修飾的成員變量一般和static聯(lián)用。? ?

?????////java規(guī)范中要求所有的常量"大寫(xiě)"? ? public static final double PI = 3.14;

}


final修飾引用類(lèi)型

final修飾的引用類(lèi)型,該引用不可再重新指向其他的java對(duì)象。但是fianl修飾的引用,該引用指向的對(duì)象的屬性值是可以修改的。

? ??基本類(lèi)型,是值不能被改變

? ??引用類(lèi)型,是地址值不能被改變,對(duì)象中的屬性可以改變

public class FinalTest01{

? ? publicstaticvoidmain(String[] args){

? ? ? ? final Customer c = new Customer("張三",20);

? ? ? ? //c是final的,無(wú)法重新賦值。? ? ? ?

?????????//c = new Customer("李四",21);

????????????//Error? ? ? ? c.name = "王五";

? ? ? ? c.age = 25;

? ? ? ? System.out.println(c.name);

? ? ? ? System.out.println(c.age);

? ? }

}class Customer{

? ? String name;

? ? int age;

? ? Customer(String name,int age){

? ? ? ? this.name = name;

? ? ? ? this.age = age;

? ? }

}

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容