java中final關(guān)鍵字用法 java中,static final和單獨(dú)static有什么區(qū)別?
java中,static final和單獨(dú)static有什么區(qū)別?final可以修飾:屬性,方法,類,局部變量(方法中的變量)final修飾的屬性的初始化可以在編譯期,也可以在運(yùn)行期,初始化后不能被改
java中,static final和單獨(dú)static有什么區(qū)別?
final可以修飾:屬性,方法,類,局部變量(方法中的變量)
final修飾的屬性的初始化可以在編譯期,也可以在運(yùn)行期,初始化后不能被改變。
final修飾的屬性跟具體對(duì)象有關(guān),在運(yùn)行期初始化的final屬性,不同對(duì)象可以有不同的值。
final修飾的屬性表明是一個(gè)常數(shù)(創(chuàng)建后不能被修改)。
final修飾的方法表示該方法在子類中不能被重寫,final修飾的類表示該類不能被繼承。
對(duì)于基本類型數(shù)據(jù),final會(huì)將值變?yōu)橐粋€(gè)常數(shù)(創(chuàng)建后不能被修改);但是對(duì)于對(duì)象句柄(亦可稱作引用或者指針),final會(huì)將句柄變?yōu)橐粋€(gè)常數(shù)(進(jìn)行聲明時(shí),必須將句柄初始化到一個(gè)具體的對(duì)象。而且不能再將句柄指向另一個(gè)對(duì)象。但是,對(duì)象的本身是可以修改的。這一限制也適用于數(shù)組,數(shù)組也屬于對(duì)象,數(shù)組本身也是可以修改的。方法參數(shù)中的final句柄,意味著在該方法內(nèi)部,我們不能改變參數(shù)句柄指向的實(shí)際東西,也就是說在方法內(nèi)部不能給形參句柄再另外賦值)。
static可以修飾:屬性,方法,代碼段,內(nèi)部類(靜態(tài)內(nèi)部類或嵌套內(nèi)部類)
static修飾的屬性的初始化在編譯期(類加載的時(shí)候),初始化后能改變。
static修飾的屬性所有對(duì)象都只有一個(gè)值。
static修飾的屬性強(qiáng)調(diào)它們只有一個(gè)。
static修飾的屬性、方法、代碼段跟該類的具體對(duì)象無關(guān),不創(chuàng)建對(duì)象也能調(diào)用static修飾的屬性、方法等
static和“this、super”勢(shì)不兩立,static跟具體對(duì)象無關(guān),而this、super正好跟具體對(duì)象有關(guān)。
static不可以修飾局部變量。
static final和final static沒什么區(qū)別,一般static寫在前面。
static修飾的屬性強(qiáng)調(diào)它們只有一個(gè),final修飾的屬性表明是一個(gè)常數(shù)(創(chuàng)建后不能被修改)。static final修飾的屬性表示一旦給值,就不可修改,并且可以通過類名訪問。
static final也可以修飾方法,表示該方法不能重寫,可以在不new對(duì)象的情況下調(diào)用。
“static”和“final”的區(qū)別是什么?
一:finalfinal類不能被繼承,沒有子類,final類中的方法默認(rèn)是final的。
final方法不能被子類的方法覆蓋,但可以被繼承。
final成員變量表示常量,只能被賦值一次,賦值后值不再改變。
final不能用于修飾構(gòu)造方法。
注意:父類的private成員方法是不能被子類方法覆蓋的,因此private類型的方法默認(rèn)是final類型的。
二:staticstatic表示“全局”或者“靜態(tài)”的意思,用來修飾成員變量和成員方法,也可以形成靜態(tài)static代碼塊,但是Java語言中沒有全局變量的概念。
被static修飾的成員變量和成員方法獨(dú)立于該類的任何對(duì)象。用public修飾的static成員變量和成員方法本質(zhì)是全局變量和全局方法,當(dāng)聲明它類的對(duì)象市,不生成static變量的副本,而是類的所有實(shí)例共享同一個(gè)static變量?!?/p>
static變量前可以有private修飾,表示這個(gè)變量可以在類的靜態(tài)代碼塊中,或者類的其他靜態(tài)成員方法中使用。
static修飾的成員變量和成員方法習(xí)慣上稱為靜態(tài)變量和靜態(tài)方法,可以直接通過類名來訪問,訪問語法為:類名.靜態(tài)方法名(參數(shù)列表...)類名.靜態(tài)變量名