0

これは基本に立ち返る質問です (私が思うに)、私は数人の友人と行った最近のコーディング プロジェクトで困惑しました。

コード バリエーション 1 を次に示します。

public class Test {

private String test;

public Test(){
    test = "tester";
    changeString(test);
}

public void changeString(String t){
    t = "blue apples";
}

public String getTest(){
    return test;
}

public static void main(String[] args){
    Test t = new Test();
    System.out.println(t.getTest());
}
}

プログラムが "blue apples" ではなく "tester" を出力するのはなぜですか? メソッド changeString(String) はフィールド「test」を「青いリンゴ」に変えるべきではありませんか?

事前にご回答いただきありがとうございます。

4

5 に答える 5

0

あなたがやっている、

 test = "tester";
 changeString(test);

文字列は Java では不変です。

public void changeString(String t){
    t = "blue apples";
}

上記の行では、そのメソッドに渡されるパラメーターの値を変更していますtest

変更を確認するには

public void changeString(String t){
    t= "blue apples";
    test=t;  // now assigned the value
}
于 2013-10-07T06:36:48.723 に答える