У меня возник вопрос о том, почему метод toString() неявно вызывается, когда основной метод вызывает метод printPersonPrinting().Метод Java, неявно называемый println .... почему?
public class PersonPrinting {
private String name;
private int age;
public PersonPrinting(String aName, int anAge) {
name = aName;
age = anAge;
}
public String toString() {
return name + " " + age;
}
public void printPersonPrinting() {
System.out.println(this);
}
public static void main (String [] args) {
PersonPrinting p = new PersonPrinting("Dan",10);
//printPersonPrinting is called, but toString isn't.
//But the output is formatted by toString method.
p.printPersonPrinting();
}
}
Выход этого кода -> Dan 10
Спасибо !!
Обратите внимание, что ваш метод 'toString' переопределяет' Object.toString', который не сразу становится понятным, потому что в вашем коде отсутствует аннотация '@ Override'. –
Как еще можно распечатать объект? Как вы думаете, что это могло бы сделать вместо этого? – Raedwald