課程
/后端開(kāi)發(fā)
/Java
/Java入門(mén)第二季 升級(jí)版
導(dǎo)入一個(gè)包中的全部文件時(shí)應(yīng)該怎么處理! 為什么我的程序運(yùn)行不了呢
2015-08-12
源自:Java入門(mén)第二季 升級(jí)版 7-2
正在回答
你本身包下就有個(gè)同名的Telphone類,有歧義,所以程序不知道是實(shí)例化哪個(gè)。
你要實(shí)例化HelloTelphone2包下的Telphone的話,直接指定全路徑。
Telphone?test =?new??com.HelloTelphone2.Telphone();
永遠(yuǎn)的藍(lán)天
我之前沒(méi)有導(dǎo)入整個(gè)包,只導(dǎo)入了Telephone文件,沒(méi)有問(wèn)題。
然后我嘗試了你的方法,結(jié)果也不行,但是并沒(méi)有報(bào)錯(cuò),只是調(diào)用的是本包的類而不是導(dǎo)入的包的類
參考了《Java編程語(yǔ)言》(第三版)Arnold,Gosling,Holmes 著 第264頁(yè)到265頁(yè)的內(nèi)容
improt attr*;
使用*號(hào)導(dǎo)入語(yǔ)句叫做“按需導(dǎo)入”(import on demand)聲明。也可以采用單一類型導(dǎo)入(single type import):
import attr.Attrinbuted;
……
import 機(jī)制是一種被動(dòng)機(jī)制,因?yàn)殛P(guān)于有名包的信息和類型信息并不是在編譯時(shí)被讀入加載的——直到包中的某個(gè)類型被使用時(shí)才讀入這些信息,import語(yǔ)句只是簡(jiǎn)單的告訴編譯器,當(dāng)他在本地找不到定義的類型時(shí),它應(yīng)該如何確定類型的完全限定名?!幾g器會(huì)按下面的順序查找該類型:
包括子類型的當(dāng)前類型
當(dāng)前類型中的嵌套類型
顯式命名的導(dǎo)入類型(單類型導(dǎo)入)。
在同一個(gè)包內(nèi)聲明的其他類型。
隱式命名的導(dǎo)入類型(按需導(dǎo)入)。
我前后用的兩種方法的優(yōu)先順序分別是3和5,而在同一個(gè)包中還聲明了Telephone,它在4。所以,當(dāng)單類型導(dǎo)入的時(shí)候可以而按需導(dǎo)入的時(shí)候不行。我想這應(yīng)該是為什么出錯(cuò)的原因
package?imooc; //import?imooc.second.TelePhone; import?imooc.second.*; public?class?mainPhone?{ public?static?void?main(String[]?args){ //TelePhone?phone1?=?new?TelePhone(); TelePhone?phone1?=?new?imooc.TelePhone(); phone1.getPhone(); TelePhone?phone2?=?new?imooc.second.TelePhone(); phone2.getPhone(); SmartPhone?sPhone?=?new?SmartPhone(); sPhone.getSmartPhone(); } }
package?imooc.second; public?class?TelePhone?{ public?void?getPhone(){ System.out.println("imooc.second.telephone?running?!"); } }
package?imooc; public?class?TelePhone?{ public?void?getPhone(){ System.out.println("imooc.Telephone?running?!"); } }
導(dǎo)入import com.HelloTelphone2.*;包中的全部文件了,然后Telphone?test=new Telphone();不就應(yīng)該是導(dǎo)入的包的Telphone()了嘛?為什么不對(duì)呢!
桑桑2333
舉報(bào)
課程升級(jí)!以終為始告別枯燥,在開(kāi)發(fā)和重構(gòu)中體會(huì)Java面向?qū)ο缶幊痰膴W妙
1 回答這個(gè)程序是怎么運(yùn)行的
3 回答當(dāng)導(dǎo)入兩個(gè)包 兩個(gè)包有同樣命名的方法時(shí)候怎么執(zhí)行呢?
2 回答//下面部分有什么作用,或者說(shuō)這個(gè)程序是怎么運(yùn)行的
5 回答我在eclipse編寫(xiě)java程序,為什么運(yùn)行結(jié)果是之前一個(gè)程序的結(jié)果?
4 回答為什么運(yùn)行不了呢
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號(hào)-11 京公網(wǎng)安備11010802030151號(hào)
購(gòu)課補(bǔ)貼聯(lián)系客服咨詢優(yōu)惠詳情
慕課網(wǎng)APP您的移動(dòng)學(xué)習(xí)伙伴
掃描二維碼關(guān)注慕課網(wǎng)微信公眾號(hào)
2015-08-12
你本身包下就有個(gè)同名的Telphone類,有歧義,所以程序不知道是實(shí)例化哪個(gè)。
你要實(shí)例化HelloTelphone2包下的Telphone的話,直接指定全路徑。
Telphone?test =?new??com.HelloTelphone2.Telphone();
2015-10-02
我之前沒(méi)有導(dǎo)入整個(gè)包,只導(dǎo)入了Telephone文件,沒(méi)有問(wèn)題。
然后我嘗試了你的方法,結(jié)果也不行,但是并沒(méi)有報(bào)錯(cuò),只是調(diào)用的是本包的類而不是導(dǎo)入的包的類
參考了《Java編程語(yǔ)言》(第三版)Arnold,Gosling,Holmes 著 第264頁(yè)到265頁(yè)的內(nèi)容
improt attr*;
使用*號(hào)導(dǎo)入語(yǔ)句叫做“按需導(dǎo)入”(import on demand)聲明。也可以采用單一類型導(dǎo)入(single type import):
import attr.Attrinbuted;
……
import 機(jī)制是一種被動(dòng)機(jī)制,因?yàn)殛P(guān)于有名包的信息和類型信息并不是在編譯時(shí)被讀入加載的——直到包中的某個(gè)類型被使用時(shí)才讀入這些信息,import語(yǔ)句只是簡(jiǎn)單的告訴編譯器,當(dāng)他在本地找不到定義的類型時(shí),它應(yīng)該如何確定類型的完全限定名?!幾g器會(huì)按下面的順序查找該類型:
包括子類型的當(dāng)前類型
當(dāng)前類型中的嵌套類型
顯式命名的導(dǎo)入類型(單類型導(dǎo)入)。
在同一個(gè)包內(nèi)聲明的其他類型。
隱式命名的導(dǎo)入類型(按需導(dǎo)入)。
我前后用的兩種方法的優(yōu)先順序分別是3和5,而在同一個(gè)包中還聲明了Telephone,它在4。所以,當(dāng)單類型導(dǎo)入的時(shí)候可以而按需導(dǎo)入的時(shí)候不行。我想這應(yīng)該是為什么出錯(cuò)的原因
2015-09-12
2015-08-12
導(dǎo)入import com.HelloTelphone2.*;包中的全部文件了,然后Telphone?test=new Telphone();不就應(yīng)該是導(dǎo)入的包的Telphone()了嘛?為什么不對(duì)呢!