最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

關(guān)于java的包Package中同名類(lèi)的沖突及其理解

 更新時(shí)間:2023年07月10日 15:33:53   作者:鐘眞龍  
這篇文章主要介紹了關(guān)于java的包Package中同名類(lèi)的沖突及其理解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

java的包Package中同名類(lèi)的沖突及理解

在一個(gè)項(xiàng)目中建立三個(gè)包分別為

  • chapter2
  • pack2
  • pack3

其中初始化(主)函數(shù)在InitialTelphone類(lèi)里,看圖顯然是在chapter2包里。

這是chapter2包下的Telphone類(lèi)實(shí)現(xiàn)

package chapter2;
public class Telphone {
  //屬性
	 private float cup;
	 private float screen;
	 private float mem;
  //get set方法
	 public float getScreen() 
	 {
		 return screen;
	 }
	 public void setScreen(float newScreen) 
	 {
		 screen=newScreen;
	 }
	 //方法	
	 public Telphone() 
	 {
		 System.out.println("第一個(gè)包的Telphone類(lèi)");
	 }
}

這是pack2包下的Telphone類(lèi)實(shí)現(xiàn)

package pack2;
public class Telphone {
     public Telphone() {
		// TODO Auto-generated constructor stub
    	 System.out.println("第二個(gè)包的類(lèi)Telphone");
	}
}

這是pack3包下的Telphone類(lèi)實(shí)現(xiàn)

package pack3;
public class Telphone {
   public Telphone() {
	// TODO Auto-generated constructor stub
	   System.out.println("第三個(gè)包的Telphone類(lèi)");
}
}

chapter2包下的initialTelphone類(lèi)實(shí)現(xiàn)

package chapter2;
public class InitalTelphone {
	public static void main(String[] args) {
		//通過(guò)無(wú)參方法生成對(duì)象
	 Telphone tel=new Telphone();	
	}
}

在initialTelphone文件寫(xiě)沒(méi)有導(dǎo)入包pack2.Telphone和pack3.Telphone

執(zhí)行程序?qū)?huì)得到以下結(jié)果:

第一個(gè)包的Telphone類(lèi)

若在initialTelphone文件中導(dǎo)入pack2.telphone

intialTelphone代碼改變?nèi)缦拢?/p>

package chapter2;
import pack2.Telphone;
public class InitalTelphone {
	public static void main(String[] args) {
		//通過(guò)無(wú)參方法生成對(duì)象
	 Telphone tel=new Telphone();
	}
}

執(zhí)行程序會(huì)發(fā)現(xiàn)結(jié)果為:  

第二個(gè)包的類(lèi)Telphone

但是如果導(dǎo)入的包形式為:impor pack2.*;

package chapter2;
import pack2.*;
public class InitalTelphone {
	public static void main(String[] args) {
		//通過(guò)無(wú)參方法生成對(duì)象
	 Telphone tel=new Telphone();
	}
}

程序運(yùn)行結(jié)果又發(fā)生了變化:

第一個(gè)包的Telphone類(lèi)

如果同時(shí)導(dǎo)入pack2.Telphone和pack3.Telphone

則會(huì)發(fā)生包沖突報(bào)錯(cuò)

The import pack3.Telphone collides with another import statement

package chapter2;
import pack2.Telphone;
import pack3.Telphone;;
public class InitalTelphone {
	public static void main(String[] args) {
		//通過(guò)無(wú)參方法生成對(duì)象
	 Telphone tel=new Telphone();
	}
}

但是把pack2.telphone格式改為pack2.*,pack3.Telphone保持不變

package chapter2;
import pack2.*;
import pack3.Telphone;;
public class InitalTelphone {
	public static void main(String[] args) {
		//通過(guò)無(wú)參方法生成對(duì)象
	 Telphone tel=new Telphone();
	 //有參構(gòu)造方法生成對(duì)象
	 //Telphone tel2=new Telphone(4.0f,3.0f,1.5f);
	}
}

程序執(zhí)行結(jié)果為:

第三個(gè)包的Telphone類(lèi)

顯然如果把pack3.Telphone格式也改為pack3.*,結(jié)果可想而知:

第一個(gè)包的Telphone類(lèi)

但是如果把chapter2中的Telphone類(lèi)給刪除了

導(dǎo)入包的格式為pack2.*;pack3.*;

運(yùn)行程序就會(huì)出現(xiàn)沖突錯(cuò)誤:

        The type Telphone is ambiguousThe type Telphone is ambiguous

如果只導(dǎo)入Pack2.*或者只導(dǎo)入Pack3.*則又可以運(yùn)行成功:

(import Pack2.*;)結(jié)果:第二個(gè)包的Telphone類(lèi)

(import Pack3.*;)結(jié)果:第三個(gè)包的Telphone類(lèi)

通過(guò)上述程序的測(cè)試,

我知道了包重名類(lèi)的簡(jiǎn)單運(yùn)行機(jī)制:

1、如果沒(méi)有導(dǎo)入任何包,主函數(shù)運(yùn)行時(shí)創(chuàng)建類(lèi)的實(shí)例首先從自己所在的包里面找

2、如果導(dǎo)入一個(gè)包,并且導(dǎo)入該包的形式精確到重名的類(lèi),則主函數(shù)創(chuàng)建重名類(lèi)實(shí)例將會(huì)從導(dǎo)入的包里找

3、如果導(dǎo)入一個(gè)包,包的格式為  import 包名.*;類(lèi)型的,則主函數(shù)創(chuàng)建重名類(lèi)實(shí)例時(shí)首先在主函數(shù)自己所在的包里找,找不到了再去導(dǎo)入的.*包里面找

4、如果導(dǎo)入多個(gè)包,并且導(dǎo)入的多個(gè)包中只有一個(gè)導(dǎo)入類(lèi)型精確到重名類(lèi),則主函數(shù)創(chuàng)建重名類(lèi)實(shí)例時(shí)在導(dǎo)入精確到類(lèi)的包里面找。

5、如果導(dǎo)入多個(gè)包,并且讀入的多個(gè)包中都是(import 包名.*;)類(lèi)型的,主函數(shù)創(chuàng)建重名類(lèi)實(shí)例時(shí)直接在自己所在包里找;如果找不到,并且導(dǎo)入的多個(gè)包里有兩個(gè)同名類(lèi)就會(huì)報(bào)錯(cuò) ;

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 一篇超詳細(xì)的Spring Boot對(duì)jdbc支持的文章

    一篇超詳細(xì)的Spring Boot對(duì)jdbc支持的文章

    JdbcTemplate 是在JDBC API基礎(chǔ)上提供了更抽象的封裝,并提供了基于方法注解的事務(wù)管理能力。 通過(guò)使用SpringBoot自動(dòng)配置功能并代替我們自動(dòng)配置beans,下面給大家介紹spring boot中使用JdbcTemplate相關(guān)知識(shí),一起看看吧
    2021-07-07
  • 如何基于JavaFX開(kāi)發(fā)桌面程序

    如何基于JavaFX開(kāi)發(fā)桌面程序

    這篇文章主要介紹了如何基于JavaFX開(kāi)發(fā)桌面程序,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-11-11
  • Java調(diào)用瀏覽器打開(kāi)網(wǎng)頁(yè)完整實(shí)例

    Java調(diào)用瀏覽器打開(kāi)網(wǎng)頁(yè)完整實(shí)例

    這篇文章主要介紹了Java調(diào)用瀏覽器打開(kāi)網(wǎng)頁(yè)的方法,以完整實(shí)例形式分析了java打開(kāi)網(wǎng)頁(yè)的相關(guān)技巧,需要的朋友可以參考下
    2015-05-05
  • 使用IDEA異常斷點(diǎn)來(lái)定位java.lang.ArrayStoreException的問(wèn)題

    使用IDEA異常斷點(diǎn)來(lái)定位java.lang.ArrayStoreException的問(wèn)題

    這篇文章主要介紹了使用IDEA異常斷點(diǎn)來(lái)定位java.lang.ArrayStoreException的問(wèn)題,平常開(kāi)發(fā)過(guò)程中面對(duì)這種描述不夠清楚,無(wú)法定位具體原因的問(wèn)題該如何處理,下面我們來(lái)一起學(xué)習(xí)一下吧
    2019-06-06
  • SpringBoot中的自定義Banner詳細(xì)解析

    SpringBoot中的自定義Banner詳細(xì)解析

    這篇文章主要介紹了SpringBoot中的自定義Banner詳細(xì)解析,Banner即橫幅標(biāo)語(yǔ),我們?cè)趩?dòng)SpringBoot項(xiàng)目時(shí)會(huì)將Banner信息打印至控制臺(tái),我們可以輸出一些圖形、SpringBoot版本信息等內(nèi)容,需要的朋友可以參考下
    2024-01-01
  • 使用Java visualVM監(jiān)控遠(yuǎn)程JVM的流程分析

    使用Java visualVM監(jiān)控遠(yuǎn)程JVM的流程分析

    我們經(jīng)常需要對(duì)我們的開(kāi)發(fā)的軟件做各種測(cè)試, 軟件對(duì)系統(tǒng)資源的使用情況更是不可少,JDK1.6開(kāi)始自帶的VisualVM就是不錯(cuò)的監(jiān)控工具,本文給大家分享使用Java visualVM監(jiān)控遠(yuǎn)程JVM的問(wèn)題,感興趣的朋友跟隨小編一起看看吧
    2021-05-05
  • 使用Spring Security控制會(huì)話的方法

    使用Spring Security控制會(huì)話的方法

    在本文中,我們將說(shuō)明Spring Security如何允許我們控制HTTP會(huì)話。這篇文章主要介紹了使用Spring Security控制會(huì)話 ,需要的朋友可以參考下
    2019-05-05
  • java圖論弗洛伊德和迪杰斯特拉算法解決最短路徑問(wèn)題

    java圖論弗洛伊德和迪杰斯特拉算法解決最短路徑問(wèn)題

    這篇文章主要為大家介紹了java圖論弗洛伊德算法和迪杰斯特拉算法解決最短路徑的問(wèn)題示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助
    2021-11-11
  • springmvc path請(qǐng)求映射到bean 方法的流程

    springmvc path請(qǐng)求映射到bean 方法的流程

    這篇文章主要介紹了springmvc path請(qǐng)求映射到bean 方法的流程,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-07-07
  • SpringBoot+mybatis+thymeleaf實(shí)現(xiàn)登錄功能示例

    SpringBoot+mybatis+thymeleaf實(shí)現(xiàn)登錄功能示例

    這篇文章主要介紹了SpringBoot+mybatis+thymeleaf實(shí)現(xiàn)登錄功能示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07

最新評(píng)論

宁阳县| 苗栗县| 乌拉特后旗| 七台河市| 华宁县| 海盐县| 蕉岭县| 弥勒县| 隆德县| 吴旗县| 翁源县| 惠来县| 会理县| 苍山县| 遵义市| 扶绥县| 林州市| 百色市| 孝感市| 义乌市| 鲁甸县| 基隆市| 怀远县| 德清县| 米易县| 慈利县| 灌南县| 盘山县| 宜良县| 彰武县| 宁明县| 佳木斯市| 蕲春县| 万载县| 紫阳县| 包头市| 马鞍山市| 若尔盖县| 哈巴河县| 休宁县| 苗栗县|