2016-07-03 67 views
0

所以我知道,如果我有兩個包說:一個默認的包,彼此包「com.projectjava」,其中包含一類說,MyClass.java然後我需要使用它裏面包語句:是否可以避免包裝和進口陳述?

package com.projectjava; 

public class MyClass { 
    ... 
} 

而且,在默認包,其中主要的功能,我需要一個import聲明:

import com.projectjava.*; 

public class MyClassTest { 
    ... 
} 

是否有可能避免這兩個進口和包語句,並使用完整的聲明語法如com.projectjava.MyClassTest?包裝聲明是一項要求嗎?

+0

是的,這是合法的。事實上,如果你有兩個來自不同包的同名的兩個類,*是必需的。 –

+0

我不確定「避免包裝聲明」的含義。如果你想讓你的課程在一個包中,那麼包說明是必需的。如果你沒有包裝說明,那麼你的班級在默認包裝中。但這是非常非常糟糕的做法。如果你這樣做,你會遇到種種問題(比如不能在其他包中的類中使用該類)。 –

回答

2

package是強制性的,如果你的類發現自己比其他包中的default package


如果你不想使用import你可以簡單地使用完全合格的名稱,該類例如像java.util.regex.Pattern

+1

所以,我猜如果我是對的,package語句會告訴編譯器該文件屬於哪個包? – user963241

+0

確實就是這樣:) –

1

package語句是必需的,通常建議import語句,但不是必需的。

如果你不使用一個import語句,你必須使用類的全名你使用:

public class MyClassTest { 

    public void foo() { 
     com.projectjava.MyClass myClassInstance = new com.projectjava.MyClass(...) 
    } 

}