以下のクラスがあります。
html
1public class Test { 2 private String msg; 3 public Test() { this("Good morning"); } 4 public Test(String msg) { msg = msg; } 5 public String toString(){ return ("msg : " + msg); } 6 7 public static void main(String[] args) { 8 System.out.println(new Test()); 9 } 10}
System.out.println(new Test());
の「new Test()」でクラスをインスタンス化しています。その際
public Test() { this("Good morning"); }
はコンストラクタなので実行され、またthisがあるので、「public Test(String msg) { msg = msg; }」が実行されるのはわかるのですが、
public String toString(){ return ("msg : " + msg); }
に関しては明示的に呼び出されていないので、実行される理由が分かりません。なぜ上記は実行されるのでしょうか?
回答1件
あなたの回答
tips
プレビュー