2013-03-05 28 views
-2

我要訪問在類的構造函數的名字和年齡的價值選擇,我提到的公共選擇(){ 它們存儲在NEWP的GetValues方法獲取構造函數中的值來自另一個類的方法?

Choose.java

class Choose { 
    String Cn,Ca; 
    public Choose(){ 
     btn.addMouseListener{ 
     } 
    } 

    public static void gtNp(string nn,string aa) { 
     Cn=nn; 
     Ca=aa; 
    } 

} 

NewP.java

class NewP { 
    Choose C1 = new Choose(); 

    NewP() { 
     btn.addMouseListener{ 
      GetValues(); 
      Choose.gtNp(name,age);  
     } 
    } 

    public NewP GetValues(){ 
     Name=   ; 
     Age=   ; 
     return null; 
    } 

} 
+1

我認爲你應該首先從類和對象等基礎知識開始。 – Abubakkar 2013-03-05 16:59:16

+0

http://docs.oracle.com/javase/tutorial/java/concepts/index.html – Iraklis 2013-03-05 17:14:17

+0

1)注意你的變量命名方案(變量應該以小寫開頭),2)請格式化你的代碼! 3)你不能使用靜態方法來訪問實例變量4)將實例變量標記爲private,並在必要時提供public * getters和setters *(非靜態方法) – 2013-03-05 17:40:17

回答

3

我可能不會讓當前的代碼點,但這是一種混淆的方式。我發現了幾個問題。

首先,您有一個static方法設置Choose類的值,這應該會導致錯誤,因爲您正在從靜態上下文訪問非靜態變量。你應該使用getter和setter(或直接使用字段,其他人可能會這麼說)。使用這種方法:

public static void gtNp(string nn,string aa){ 
    Cn=nn; //Java convention: fields and methods start with lowercase. 
    Ca=aa; 
} 

將導致由的Choose所有情況下被共享相同的值,但是,當然,這可以是所需的行爲。如果他們實例相關的,你可以在構造函數傳遞這些值:

public Choose(String nn, String aa){ 
    cn = nn; //To adapt your code to the convention, I've used lowercases here. 
    ca = aa; 
    btn.addMouseListener{ 
} 

無論哪種方式,你需要添加任何的getter或setter方法的領域。您可能需要檢查settersgetters,並實施它們。我會留下這些作爲你的鍛鍊。

下面是一些基本的鏈接,幫助您:

+0

Thnxz爲基本鏈接。但仍然困惑。 你能提供給我更多的鏈接,這將清除我的概念相關的對象,從構造函數的方法調用,並在構造函數中使用其他類的值? – AshwinK 2013-03-05 17:43:22

+0

我已經添加了兩個新鏈接。一個用於Oracle Java教程的基礎,另一個用於課程教程。我建議你閱讀從零開始的所有內容,然後往上走。 – Gamb 2013-03-05 17:51:38

相關問題