簡體   English   中英

如何從一個類訪問String到另一個?

[英]How to access String from one class to another?

例如,我有2個類和一個接口。

public class mainClass {

    private String word;

}



public interface intWord {

     public String getOutput();

     public void setInput( String input );

     public void setLevel ( int level );

}



public class secondClass implements intWord {

//class I want to be able to access 'word' from mainClass without extending it.

     public String getOutput()    {

     }

     public void setInput( String input )    {

     }

     public void setLevel ( int level )    {

     }

}

我如何在不擴展mainClass的情況下訪問我的secondClass中的“單詞”? 我相信我可以在某些地方添加一些輔助方法以使其變得簡單....但是我不知道該怎么做!

在您的mainClass中,您可以添加一個“ getter”方法,如下所示

 public class mainClass {

    private String word;

    public String getWord(){
         return word;
    }

 }

然后從第二個類中調用getWord()

您還可以通過添加setter方法來動態設置第二類的單詞值:

 public void setWord(String newWord){
      word = newWord;
 }

嘗試使用getWord()和setWord(String word)

在mainClass中運行並從那里開始。

假設要使用“ word”作為setInput方法的參數的一種方法是擁有mainClass的實例和使用getter來訪問字段word的方法。 這是它的樣子:

public static void main( String args[])
{
    // Assuming word is not null
    secondClass second_class = new secondClass ();
    secondclass.setInput(mainClass.getWord());
}

另一種方法是讓您的字段字是一個靜態變量,並使用靜態getter返回它(不推薦)。 這是您的mainClass外觀:

public class mainClass {

     private static String word;

     public static String getWord(){
        return word;
     }
}

這是您將如何訪問它:

public static void main( String args[])
{
    mainClass mainclass = new mainClass();
    // Assuming word is not null
    secondClass second = new secondClass ();
    secondclass.setInput(mainClass.getWord());
}

最好的方法是為private String word;創建setter和getter private String word; mainClass創建一個mainClass對象,並在secondClass創建一個對象,然后訪問getter和setter來獲取/設置word的值。 另一件事,如果您知道該word是全局變量,則可以將其創建為public string word; 而不是private並在secondClass中extend mainClass以便直接訪問它。

僅出於您的知識,Java遵循約定,其中類名應以大寫字母開頭,然后遵循駝峰大小寫。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM