Oracle Javaシルバー学習途中、問題で疑問に感じたことがあったので質問しました。
下記の二つのクラスがあるとします。
Java
1public class Test { 2 3 static int num = 10; 4 int num2 = 20; 5 6 public String toString() { 7 return num2 + ":" + num; 8 } 9}
Java
1public class Sample { 2 public static void main(String[] args) { 3 Test a = new Test(); 4 a.num2 = 30; 5 System.out.println(a); 6 Test b = new Test(); 7 b.num = 30; 8 System.out.println(b); 9 } 10}
疑問点
なぜ下記のように記述せずにtoStringメソッドが呼び出されるのか疑問です。
Java
1public class Sample { 2 public static void main(String[] args) { 3 Test a = new Test(); 4 a.num2 = 30; 5 // System.out.println(a); 6 System.out.println(a.toString()); 7 Test b = new Test(); 8 b.num = 30; 9 // System.out.println(b); 10 System.out.println(b.toString()); 11 } 12}
四択問題だったため正解はできましたが、自分はメモリへのアドレスが出力されると思っていました。
どなたか理由をご存じの方ご教授いただけませんか?


回答1件
あなたの回答
tips
プレビュー