2013-02-11 47 views
0

我在調用另一個class.Lets的變量有一個問題說,我們有1類和類class2和Class2中具有類似的方法:如何調用另一個類的變量。

public Class2{ 

public void method2 (Element ele, Grammar utterance, String user) { 

String speech =................ 

     } 
    } 

而我的目的就是讓這個「講話」的變量,並把它傳遞到Class 。有關如何做到這一點的任何想法?

回答

0

-Declare方法之前:公共靜態字符串的語音 -Initialize在方法或縮小:語音=「喜」 - 呼叫從另一個類(靜態範圍):Class1.speech

+0

但我不能改變任何東西(對於exp來說,從void到public或者你已經使它成爲靜態的)在當前代碼中,我只能添加sth。因爲當我改變時,那麼很多代碼都會影響到這個我需要一個不會修改代碼但只添加一些代碼行的解決方案!而這個String語音是在class2的一個方法中定義的,所以它是一個局部變量,我不知道如何達到它... – user2052015 2013-02-11 18:59:06

+0

順便說一句,當我這樣做,因爲你說,那麼它的作品完美,非常感謝,但我不知道如果我已經被要求找到一些修改代碼的結果! – user2052015 2013-02-11 19:07:06

+0

此外,您可以返回語音值(字符串)而不是無效或傳遞語音作爲方法參數 – 2013-02-11 19:08:30

0

您可以將void method2(...)更改爲public String method2(...)並返回語音。然後在你的第一堂課你有一個class2的實例,並調用class2.method2(...)將給類1的語音變量

+0

但問題是即時沒有允許改變任何東西(如從void到公共)在當前代碼我只能添加sth.Be因爲當我改變某事那麼這麼多的代碼得到這個影響,我需要一個解決方案,它不修改代碼,但只增加了一些行的代碼! – user2052015 2013-02-11 18:45:45

0

你只需要在其他Class1中有一個Class2的實例,所以例子是:

Class1 mySpeech = new Class1(); 

現在訪問mySpeech可以訪問包含語音字符串變量的對象是一個公共變量。

mySpeech.speech 

但它是很好的做法,創建此可以使用Eclipse的快捷方式創建getter/setter方法:命名的一類資金使用時的第一個字母,並調用

Sources->Generate Getters and Setters 

而且駱駝套的公約。所以當你命名一個班級叫它Class1ClassOne

0

您必須在提供字符串的對象中擁有某種公共可見性。然後將字符串從第一個對象傳遞到第二個對象,或者通過引用將對象傳遞到第二個對象(不推薦)。

public FirstClass { 
    private String speech = "I am the first object!"; 

    public String getSpeech() { 
     return speech; 
    } 
} 

public SecondClass { 
    private string speechCopy; 

    public void takeSpeech(string speechCopy) { 
     this.speechCopy = speechCopy + " (not really, I'm a copy!)"; 
    } 
} 

從這裏,你只需調用方法來調用你想要的行爲。您可以保持原樣,但將get/set方法添加到每個對象,以便它們可以傳遞變量和引用。

+0

但問題是我不允許改變任何東西(對於從無效到公共或私人執行的任何事情)在當前代碼我只能添加某事。因爲當我改變某事那麼這麼多的代碼會受到影響,我需要一個不會修改代碼但只添加一些代碼行的解決方案!而這個String語音是在class2的一個方法中定義的,所以它是一個局部變量,我不知道如何達到它... – user2052015 2013-02-11 18:56:37

+0

我提供的解決方案是通用的。根據您提供的代碼,您仍然可以向該對象添加一個方法,該方法返回字符串的值,而不向現有代碼添加任何內容。 對於您的示例,請將getSpeech()方法添加到您的類2中,並且只需「返回語音」;在方法裏面。 – winglerw28 2013-02-11 19:13:19

相關問題