не правильно/внимательно прочитал?
Если ты внутри класса Dog скрываешь данные о состоянии голода, к примеру, тогда ты инкапсулируешь эти данные в рамках класса Dog, что тут непонятного? Никто не может знать насколько собака голодна, можно увидеть это только наблюдая за её поведением.
class Dog { private bool isHungry; public bool GetIsHungry() => isHungry; public bool SetIsHungry(bool value) => isHungry = value; } тут есть инкапсуляция?
Почему, я же добавил private, значит скрыл, а если скрыл, значит инкапсулировал!!!
ты не скрыл, скрыл бы ты если бы у тебя сетеры и геттеры не торчали из класса
Так скрыл же, у меня переменная из вне недоступна и скрыта
я понимаю что ты рофлишь, но я этого и не имел ввиду, код выше равносилен class Dog { public bool IsHungry; }
Зачем ты байтиш чела? =)
Ну он дает какие то определения и утверждения, вот пусть и отвечает на вопросы!
Нет, не равносилен, интерфейс класса разный
C точки зрения инкапсуляции - равносилен
Нет, интерфейс разный
Как он равносилен? public bool IsHungry ты не знаешь если его где-то изменяют. private bool IsHungry ты всегда знаешь кто и где изменяет
и с чего ты взял что я всегда знаю кто меняет private bool IsHungry?
Потому что VS показывает ссылки на всех кто вызывает сет метод
как не знаешь? ide показывает!
а Rider показывает ссылки и на использование полей, это уже про функционал IDE, а не про инкапсуляцию
VS у меня никогда не показывало
Обсуждают сегодня