さまざまな変数の値を増やすメソッドを作成しようとしています。ここでは、現在使用しているロジックのタイプの例ですが、メソッドが終了すると元の変数は変更されません。メソッドの外で値を変更できるようにするには、何を追加または置換する必要がありますか?メソッド内から変数の値を変更するにはどうすればよいですか?
static int num = 2;
static String text = "3";
public static void up(int i, String s){
//Debug
System.out.println("Before Change");
System.out.println("I: " + i);
System.out.println("S: " + s);
System.out.println("Num: " + num);
System.out.println("Text: " + text);
//Code
i = i + 3;
s = String.valueOf(i);
//Debug
System.out.println("After Change");
System.out.println("I: " + i);
System.out.println("S: " + s);
System.out.println("Num: " + num);
System.out.println("Text: " + text);
}
public static void main(String[] args) {
up(num, text);
//Debug
System.out.println("Out of Scope");
System.out.println("Num: " + num);
System.out.println("Text: " + text);
}
。この理由は、プリミティブ型にcall-by-valueを使用するjavaです。 – f1sh
テキストは文字列オブジェクトのように関数呼び出しの外側では必ず更新されますが、numはint型です、プリミティブで、関数外では更新されません。 –
@VineetKasat 'String'は' int'と同様に更新されません。 –