2013-04-11 105 views
-2

這個的一個變量是我的代碼的示例:訪問另一個類的從一個內部類不同類

public class ofront3 extends Applet implements ActionListener { 

    Preprocess pp; 

    public ofront3(){ 
    } 

    public ofront3(canvas can) { 
     pp = new Preprocess(); 
     /*other things are there*/ 
    } 

    public void actionPerformed(ActionEvent ae){ 
     String str = ae.getActionCommand(); 
     if(str.equals("Load")) { 
     msg = "Loading microarray data file..."; 
     pp.readdata(noGenes, noTimes, GeneNames, ExpValues); 
     } 
    } 

    class canvas extends Canvas { 
     public void paint(Graphics g) { 
     pp.readdata(pp.readdata(noGenes, noTimes, GeneNames, ExpValues); 
     } 
    } 

在這裏,類預處理是在一個不同的文件,但在相同的目錄中,以便這些代碼的不會給出任何編譯錯誤。然而,在類帆布,我需要從readdata函數使用ExpValues ..可以any1建議如何做到這一點?

+0

將front構造函數置於另一個構造函數中:此代碼不能編譯。 – Aubin 2013-04-11 18:16:27

+0

oops im抱歉,我輸入時出錯了!我會編輯它 – praveena 2013-04-11 18:17:12

+0

什麼是ExpValues?一類?一個領域?一個錯字?它在哪裏宣佈?如果它是一個字段,可能是因爲使用包可見性而遇到此問題。在這種情況下,請嘗試使用public public'public ExpValues'進行聲明。 – acdcjunior 2013-04-11 18:27:55

回答

2

如果不將有問題的成員變量傳遞給Preprocess類,或者在一些更全局的作用域(如單例類或靜態類)中提供它們,則無法做到這一點。

+0

「如果不將有問題的成員變量傳遞給Preprocess類,就沒有辦法做到這一點」..對不起,我不明白這個聲明..成員變量ExpValues已經在類Preprocess .. – praveena 2013-04-11 18:20:40

+0

我想代碼片段有點令人困惑,我真的覺得有一些缺失。 ExpValues在哪裏定義? – 2013-04-11 18:39:28

+0

另外,Canvas在哪裏定義,它是如何構建的,它爲什麼需要ExpValues? – 2013-04-11 18:40:41