2

次のコードがあります

public class DriverTester {
  public static void main(...){
    // test empty constructor
    Person p1 = new Person();
    System.out.println("p1: " + p1); 
  }
}

public class Person {
   private String name;
   // Empty constructor 
   public Person () {
   }
   // getter avoided for simplicity
   public String toString() {
     return "Mr.or Ms. "+this.name;
   }
}

コンパイルされ、正常に実行され、「Mr or Mrs null」が表示されます。したがって、それはtoStringメソッドを呼び出した結果になります。

print line メソッドの構文がわかりません。オブジェクトの名前だけでp1特定のメソッドが実行されるのはどうしてでしょうか。どのメソッドを実行するかをどのように知るのでしょうか? 構文は

System.out.println("p1: " + p1.getName());

また

System.out.println("p1: " + p1.toString());

明確にしていただきありがとうございます

4

2 に答える 2