Если бы было System.out.println(duck1.toString); то понятно мы обращаемся к функции и она возвращает значение. А мы обращаемся к объекту System.out.println(duck1);..
seregadb
16 уровень
Почему выводится на экран? Если мы не обращаемся к функции, а обращаемся к самому объекту?
Обсуждается
Комментарии (5)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Илья М
27 июля 2018, 21:56
При создании объекта класса, в переменной (в твоем примере это переменная duck1) хранится ссылка на объект, а не сам объект.
0
seregadb
27 июля 2018, 22:21
Просто непонятно почему этот метод вызывается. Если будут другие возвращающие методы они не вызовутся. Тот же getter хоть и возвращает значение но не вызывается. Есть подозрение что toString какой-то необычный метод и нам об это не сказали.
0
Илья М
27 июля 2018, 22:39
Если считаешь что о чем то не сказали, можешь спросить у гугла.
Ни кто не вызовется пока ты их не вызовешь. Ты просишь у System.out.println вывести в консоль значение переменной duck1, которая хранит ссылку на объект . Вот она тебе и выводит ссылку.
0
Иван Лаврентьев
28 июля 2018, 00:38
метод toString() является методом класса Object, от которого наследуются все классы. поэтому у твоего класса этот метод есть "из коробки". при передаче объекта любого класса в поток вывода toString() вызывается на нем автоматически
+3
seregadb
28 июля 2018, 11:19
Спасибо
0