Класс Object имеет метод toString() , который наследует каждый создаваемый вами класс. Он возвращает представление вашего объекта в виде String и очень полезен для отладки. Чтобы увидеть действие метода toString() , реализованное по умолчанию, выполните следующий эксперимент в методе main() :
public static void main(String[] args) { Adult myAdult = new Adult(); myAdult.addMoney(1); myAdult.addmoney(5); System.out.println(myAdult); }
Результат, отображаемый в консоли, выглядит следующим образом:
intro.core.Adult@b108475c
Метод println() вызывает метод toString() объекта, переданного ему. Поскольку мы пока не перегрузили toString() , то получаем вывод информации по умолчанию, которой является ID объекта. Каждый объект имеет ID, но он не много скажет вам о самом объекте. Было бы лучше, если бы мы перегрузили toString() для выдачи красиво отформатированного содержимого нашего объекта Adult :
public String toString() { StringBuffer buffer = new StringBuffer(); buffer.append("And Adult with: " + "\n"); buffer.append("Age: " + age + "\n"); buffer.append("Name: " + getName() + "\n"); buffer.append("Race: " + getRace() + "\n"); buffer.append("Gender: " + getGender() + "\n"); buffer.append("Progress: " + getProgress() + "\n"); buffer.append("Wallet: " + getWallet()); return buffer.toString(); }
Мы создаем StringBuffer для создания представления нашего объекта в виде String , затем возвращаем объект String . После выполнения этого примера на консоли должна отобразиться следующая красиво отформатированная информация:
An Adult with: Age: 25 Name: firstname lastname Race: inuit Gender: male Progress: 0 Wallet: [1, 5]
Это значительно удобнее и полезнее, чем загадочный ID объекта.