можете как маленькому объяснить, че это за метод??
public Pet getChild() { }
// что он вообще делает??
Роберт
23 уровень
господа!
Архивный
Комментарии (7)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
mk_
20 февраля 2019, 00:19
т.к. класс Pet - абстрактный, то мы не можем получить его экземпляр (создать объект на его основе)
Метод getChild() возвращает ссылку на созданный объект (класса Cat, Dog) типа Pet - полиморфизм
0
Sergey MorozExpert
17 февраля 2019, 19:01
В контексте данной задачи, что делает этот метод (равно как и getName), не очевидно.
Обычно методы с префиксом
get**** - это так называемые геттеры
set**** - так называемые сеттеры.
Используются они в плане соблюдения (мирного сосуществования) с инкапсуляцией (принцип скрытия внутреннего состояния объекта от несанкционированного и неконтролируемого изменения извне).
То есть следовало бы полагать, что класс Pet подразумевает наличие в нём приватных (скрытых для доступа извне) полей (в задаче они не продемонстрированы)
Такая структура класса Pet делает его безопасным для внешних вмешательств, но и не даёт возможности получить значения этих полей. Эту функцию и выполняют геттеры, возвращая значение соответствующего поля. Сеттеры же - скользкая дорожка, некий компромисс между строгим следованием инкапсуляции и потенциальной необходимостью каким-либо образом изменить значение поля извне (но с возможным прописанным дополнительным слоем проверок, например, на null или на любое другое некорректное изменение значения). +1
Роберт
20 февраля 2019, 19:04
private String name;
private Pet child;
я не понимаю вот что - private String name; // это метод в который мы передаем строку (String)
а private Pet child; - как так вообще, Pet! - откуда??!! я знаю String, int, double и т.д. а Pet то откуда взялся!!??
+1
Илья ГековMaster
20 февраля 2019, 19:09
В java типы бывают примитивные и ссылочные. Примитивные - это int, double и т.д., а ссылочные - это собственно классы (к примеру String - это не примитивный тип, а класс).
private Pet child - это означает, что в переменной child может лежать ссылка на объект типа Pet (т.е. говоря другим языком - объект класса Pet).
0
Роберт
20 февраля 2019, 19:13
и что мы можем сохраняться в этот класс Pet . В класс String -строки, а в Pet что??
+1
Илья ГековMaster
20 февраля 2019, 19:15
Ссылки на объекты типа Pet. То есть объекты, состоящие из полей и методов, объявленных в классе Pet. Мне кажется вы не до конца понимаете суть классов и объектов в джаве, почитайте в интернете, статей море по этому поводу.
0
Роберт
20 февраля 2019, 19:17
спасибо!)
0