Правильно ли я понял,
1. в классе Сat мы не задаем переменные типа public, т.к. теоретически (если программа будет использоваться совместно) кто то может обратится к нему и изменить начальное значение. В нашем случае, ничего не измениться (ПРАВИЛЬНО?). Т.е. это страховка.
2. protected мы задаем, чтобы ограничить видимость только для конструктора (подкласса класса Cat)? т.е. если переменная будет private, то конструктор ее не увидит. ТАК?
Andrei Pilipuk
31 уровень
зачем тут protected, a не private или вообще public
Решен
Комментарии (5)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Andrei Pilipuk
15 мая 2018, 11:32
В следующем задании (создать класс person), Если задавать тип переменной protected, то для name и age (IDEA) подсвечивает (что эти переменные где то уже использованы), а для adress и sex - указывает, что впервые.
От куда программа видит имя и возраст? из ранее созданных классов собак и котов?
при private все переменные серые.
0
Chocological Software Engineer
15 мая 2018, 21:02
Controlling Access to Members of a Class
все переменные серые. Это значит что они нигде на задействованы.
Сложно понять что за следующее задание.
если переменная будет private, то конструктор ее не увидит. ТАК?
Нет, с конструктора можно обратиться ко всем полям класса не зависимо от модификатора доступа.
0
Andrei Pilipuk
16 мая 2018, 10:40
зачем тогда protected?
Почему тогда, при смене protected на private меняется цвет с бордового на серый (то задействована, то не задействована? Как это?
0
Chocological Software Engineer
16 мая 2018, 11:15
зачем тогда protected?
Почти то же самое что package-private за исключением того что наследники имеют доступ к полям.
Модификаторы доступа и инкапсуляция
Вероятнее всего что к ней где-то обращаются, а когда меняешь на private, оттуда уже не могут обратится.
Также этот код не скомпилируется
0
Andrei Pilipuk
16 мая 2018, 20:09
ссылка полезная спасибо!
0