2010-08-25 110 views
5

在可從子打包類訪問的java父包類中?請解釋一下嗎?父類包可以從java的子包類中訪問嗎?

例如 包A.A1.A2含有類子 包A包含類燮

反正有訪問SUP從子?

請解釋一下。

我嘗試導入它不會工作 舉例: 之前的程序目錄結構 包1包含package1.java - >包2 - >包裝3包含PCheck.java

//package1.java 
package package1; 
public class package1{ 
    public static void main(String[] args) { 

    } 
} 
class phelo{ 
    phelo(){ 
     int a; 
     System.out.println("hai fun freom package 1"); 
    } 
} 

//PCheck.java; 
package package1.package2.package3; 
import package1.*; //to import package1.java 
public class PCheck { 
    public static void main(String[] args) { 
     phelo obj=new phelo(); 
    } 
} 
class helo{ 
    helo(){ 
     int a; 
     System.out.println("hai fun from package 3"); 
    } 
} 

輸出: 編譯時錯誤:package package1.package2.package3不存在;

對於從不同目錄導入類我們使用導入語句,但在這裏,我們需要從subpackage.i試圖導入它不會工作請訪問父包來解釋一個例子。

+0

[Java中包和子包之間的關係](htt電話號碼://stackoverflow.com/questions/7847568/relation-between-package-and-a-sub-package-in-java) – Raedwald 2015-06-24 12:14:17

回答

4

In java parent package class accessible from child packge class? please explain me any one?

不是你想的方式。目錄是分層的,但軟件包只是區分名稱。

如果孩子需要父級包或其他級別以外的其他人,則只需導入它即可。

這就是爲什麼import foo.*不能讓你訪問所有的子包名 - 包不是目錄的分層結構。

11

Java不承認子包的概念。就Java而言,軟件包aa.ba.b.c是無關的。他們只是名字。

所以,如果你想從a.b.c.SomeOtherClass訪問a.b.SomeClass,你必須使用一個完全合格的類名,或添加到importSomeeOtherClass

0

在abcSomeOtherClass的對象:

List<String> tmp=new ArrayList<String>(Arrays.asList(this.getClass().getPackage().getName().split("\\."))); 
tmp.remove(tmp.size()-1); 
String parent_package_name=tmp.toString().replace(", ", ".").replaceAll("[\\[\\]]", ""); 
Class cls=Class.forName(parent_package_name+".SomeClass"); 
-1

默認類只能在包內使用,不包括子包

相關問題