課程
/后端開發(fā)
/Java
/Java入門第二季
finnal可以代替static嗎
2016-07-31
源自:Java入門第二季 9-6
正在回答
不可以替代。final可以修飾類,成員變量和方法,被修飾以后,類不可被繼承,變量必須要有初始值且不可被修改,方法不可被重寫。static一般不用來修飾類,除非是內(nèi)部類;被static修飾的成員變量和方法都屬于類成員,可以通過類名直接調(diào)用。
習(xí)慣995 提問者
ziom 回復(fù) 習(xí)慣995 提問者
學(xué)霸985
學(xué)霸985 回復(fù) 學(xué)霸985
final:
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:
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不可以修飾局部變量。
來源:https://www.cnblogs.com/EasonJim/p/7841990.html
final和final static沒有必然的聯(lián)系,通俗的簡(jiǎn)單說下final和static。例如 有一個(gè)Class1的類,有一個(gè)叫class2的類,Class1中有一個(gè)aaa()方法, 如果class2繼承了class1,那么就可以在class2中覆寫class1中的aaa方法,如果你class1中的aaa()方法加了final修飾,那class2里繼承了class1以后,也不可以覆寫class2了。?? 同樣的,如果一個(gè)類用final修飾,那么它不可以被別得類繼承。再說static。? 有一個(gè)類Class1,里面有一個(gè)方法aaa(). 我想在class2中調(diào)用class1里的aaa()方法,那么我就得Class1 a = new Class1(); a.aaa();? 如果你這個(gè)方法用static修飾了, 你就可以直接Class1.aaa()? 就是可以直接用類名.方法。
不可以的,static是說明屬性,方法等是類的,即所有由該類實(shí)例化的對(duì)象都共享同一份。而final則是表示最終的意思,即變量會(huì)變成常量,方法不能被重寫,類不能有子類等
舉報(bào)
課程升級(jí)!以終為始告別枯燥,在開發(fā)和重構(gòu)中體會(huì)Java面向?qū)ο缶幊痰膴W妙
1 回答final和static有什么關(guān)系和區(qū)別?
3 回答static有什么用,和普通方法有什么區(qū)別
5 回答==跟equals的區(qū)別是什么?
4 回答有什么區(qū)別
2 回答有什么區(qū)別
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號(hào)-11 京公網(wǎng)安備11010802030151號(hào)
購課補(bǔ)貼聯(lián)系客服咨詢優(yōu)惠詳情
慕課網(wǎng)APP您的移動(dòng)學(xué)習(xí)伙伴
掃描二維碼關(guān)注慕課網(wǎng)微信公眾號(hào)
2016-08-01
不可以替代。final可以修飾類,成員變量和方法,被修飾以后,類不可被繼承,變量必須要有初始值且不可被修改,方法不可被重寫。static一般不用來修飾類,除非是內(nèi)部類;被static修飾的成員變量和方法都屬于類成員,可以通過類名直接調(diào)用。
2018-09-08
final:
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:
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不可以修飾局部變量。
來源:https://www.cnblogs.com/EasonJim/p/7841990.html
2016-07-31
final和final static沒有必然的聯(lián)系,通俗的簡(jiǎn)單說下final和static。
例如 有一個(gè)Class1的類,有一個(gè)叫class2的類,Class1中有一個(gè)aaa()方法, 如果class2繼承了class1,那么就可以在class2中覆寫class1中的aaa方法,如果你class1中的aaa()方法加了final修飾,那class2里繼承了class1以后,也不可以覆寫class2了。?? 同樣的,如果一個(gè)類用final修飾,那么它不可以被別得類繼承。
再說static。? 有一個(gè)類Class1,里面有一個(gè)方法aaa(). 我想在class2中調(diào)用class1里的aaa()方法,那么我就得Class1 a = new Class1(); a.aaa();? 如果你這個(gè)方法用static修飾了, 你就可以直接Class1.aaa()? 就是可以直接用類名.方法。
2016-07-31
不可以的,static是說明屬性,方法等是類的,即所有由該類實(shí)例化的對(duì)象都共享同一份。而final則是表示最終的意思,即變量會(huì)變成常量,方法不能被重寫,類不能有子類等