2013-07-19 80 views
-1

誰能告訴我,爲什麼下面的代碼不工作訪問,java類是不通過同一個包內的另一個類

第一個文件是,

package pack; 
import pack.*; 
public class please 
{ 
    public static void main(String s[]) 
    { 
     plz p=new plz(1); 
    } 
} 

第二個文件是,

package pack; 
public class plz 
{ 
    public plz(int i) 
    { 

    } 
} 

但是,當我編譯please.java然後錯誤說它找不到'plz()' 請引導我通過。

+3

這行在第一類中是多餘的:'import pack。*;'。 –

+5

請發佈確切的錯誤消息 - 您已解釋錯誤消息與您的代碼示例不符。 –

+0

你的編譯命令是什麼樣的。你是否包含類路徑? – mcalex

回答

3

當你編譯,你要麼需要:

  • 編譯在同一時間兩個源文件;或
  • 爲第二次調用javac提供一個類路徑,其中包括在第一次調用中生成的類。

你的錯誤信息可能意味着你沒有做任何的這些,所以編譯pleasejavac無法看到plz類的定義。

0

使用一流的

package pack; 

public class please 
{ 
    public static void main(String s[]) 
    { 
     plz p=new plz(1); 
    } 
} 
+2

你能描述這是怎麼從OP的代碼有什麼不同?我看到你刪除了不必要的導入。是嗎? –

+1

@Kevin Bowersox'import pack。*;'在課堂上是多餘的。 – Vijay

+0

@vijay ramani該文件現在編譯,但沒有找到所需的類的異常 – John11

0

如果真的說,它無法找到PLZ()這是真的,因爲你的方法接受請一流的parameter.possible你叫PLZ的方法沒有parameter.i這意味着它不是包裝問題,它是關於方法問題的。你不必導入包裝。*

+1

'公共PLZ(int i)以'是構造不是一個方法,所以它必須與 被調用'PLZ P =新的PLZ(1);' 解決辦法是: 你沒有導入包* – HybrisFreelance

+0

確定你。是正確的。我正在糾正它:編譯器沒有說它不能看到第二個類。它說它找不到沒有參數的構造函數。 –

+1

@ ankit337不,這不是解決方案。 –

相關問題