2015-09-29 30 views
0

我想將一個類的方法的值傳遞給其他類的方法。其他一些方法中使用的......所有類都在不同的文件中,但在相同的包中。這是可能的繼承(但所有類都被導入)或其他任何東西...不能直接傳遞值到hereToUse() ...試圖簡化代碼,所以編寫一個虛擬代碼如何將一個類的方法的值傳遞給其他類的方法。哪一種用於其他方法?

這是一個虛擬代碼.. (忽略一些基本錯誤,它是一個虛擬代碼...重要的是訪問hereToUse()中的值)。在此先感謝..

A.java >>>>>>

class A{ 
    public String name; // can't pass value here.... It must be Null 
    public void start(){ 
     B obj = new B(); 
     name = obj.getValueFrom("XYZ"); 
    } 
    public static void main(String args[]){ 
     A objA = new A(); 
     objA.start(); 
    } 
} 

B.java >>>>

class B{ 
     public String nameB; // can't pass value here.... It must be Null 
     public String getValueFrom(String name){ 
      nameB = name; 
      return nameB; 
     } 

     public void hereToUse(){ 
      //System.out.println(getValueFrom("something")); 
      //Here i need a value "XYZ" ... 
     } 
    } 

我們可以稱之爲start()只有一次...... hereToUse()是被其他一些班級叫...

這是可能的嗎? ...我是新的Java ...請幫我解決這個問題
也給我一些解釋。

輸出是:空

預期成果是XYZ ...

+0

最新的代碼問題。 – Satya

+0

問題更新....獲得空值 –

+0

你調用'hereToUse()'的地方。 – Satya

回答

0

第一個問題是,你正試圖從一個靜態的情況下調用成員函數。試圖這樣做會導致編譯時錯誤。關鍵字this只存在於非靜態上下文中。我相信,你希望你的main方法看起來是這樣的:

public static void main(String args[]) { 
    A aInstance = new A(); 
    aInstance.start(); 
    System.out.println(aInstance.name); 
} 

main第一線,我們創建的A一個新的實例。然後我們調用啓動方法,最後打印name到控制檯。

+0

中提到沒有...我不想從main()中打印它......如上所述'hereToUse()'這個問題被其他一些類調用 –

相關問題