16

IT-кот 10. Скрытность на 100

Человеки при всей их обычности обладают сильным колдунством - иначе как объяснить почему лоток снова опустел? IT кот готов передать власть над материей в руки простых котов. Вот это, конечно, да....

IT-кот 10. Скрытность на 100 IT, Кот, Образование, Инкапсуляция, Скрытность, Длиннопост

Для ЛЛ или тех кто не боится заклинаний на древней латыни (ну почти латыни) пример кода, использующийся в посте теперь буду выкладывать в верхней его части, выделив в рамочку (иначе его никто больше не выделит в рамочку). Пример колдунства лежит здесь.

Как в любом хорошем фокусе, материя никуда не девается - ее лишь убирают из виду. IT-кот называет это заклинание инкапсуляцией.

Что можно инкапсулировать помимо характерной субстанции лотка? Инкапсуляцию можно использовать для защиты чувствительной информации (которую кто-то может "украсть" и применить не так, как задумывалось изначально), либо сокрытия нюансов реализации конкретного действия (когда мы просим это дать еды, нам не важно, как это еды нам достанет).

Если говорить о программировании, то инкапсуляция позволяет разделить весь код на личный и публичный. К личному относится та часть кода, которая содержит в себе чувствительную информацию, либо нюансы реализации, которые не должны быть доступны публике.


Кто такая публика? Это либо другие разработчики, которые пытаются использовать ваш класс в своей работе, либо вы сами через пару месяцев, забыв что в вашем коде от чего зависит.

Первым шагом к инкапсуляции является выделение вышеобозначенных ролей. Для этого каждый элемент класса помечается модификаторами: public (для всех) и private (для частного использования). Также распространен модификатор protected, который позволяет использовать элемент класса самому этому классу, а также всем его потомкам. Если модификатор не указывать, то по умолчанию выставляется самый высокий модификатор (ограничивающий область использования больше всех) - private.

Итак, первая цель - защита чувствительных данных в классе.

Очевидно, что в случае с котом чувствительными данными будет имя - ведь ты не хочешь быть барсиком, когда ты сэр. Возьмем примеры из предыдущих постов (а именно из IT-кот 7. Классовое неравенство и IT-кот 9. "Му" говорит виртуальный кот) можно модифицировать, указав, что имя кота можно менять только в классе кот:

private string _name;

Теперь любая попытка обратиться к коту будет запрещена компьютером и ничего работать не будет. Хотя ладно, пусть обращаются, только с должным почтением, поэтому позволим получать наше имя в отдельном методе:

public string GetName()

{

return "его Величество, " + _name;

}

В отличие от прочих методов этот возвращает тип строку (для указания что конкретно необходимо возвратить используется ключевое слово return).

Ну и перепишем перечисление проживающих в доме котов:

Cat cat = animal as Cat;

Console.Write(cat.GetName());

Console.Write(", ");

Итого, мы смогли упростить метод перечисления (на одну строку), вынести способ обращения внутрь класса Cat и позволить тем самым котам самим определять то, как к ним обращаются.

Ну ладно, это все удобно, но IT-кот власть за счет сокрытия всего сущего. Как же этого добиться? С помощью личных методов. Очевидно, что личным методом котов является тыгыдык, опишем его так: private void DoTygydyk(). Теперь тыгыдык как бы есть, но его как бы нет совсем. Даже в методе Show (который знает, где кот, а где животное) не получиться кота попросить сделать тыгыдык.

Когда происходит тыгыдык? Всегда, но разве что не в момент создания кота. Поэтому перед каждым действием в классе Cat надо вызвать случайный тыгыдык.

IT-кот 10. Скрытность на 100 IT, Кот, Образование, Инкапсуляция, Скрытность, Длиннопост

Котомафия

125K постов35.3K подписчиков

Правила сообщества

В сообществе категорически запрещено:

✔Оскорблять других пользователей. Запрещено использование нецензурных выражений и ругательств. Замена части букв значками "@", "#", "$" и т. д. при вычислимости исходного слова не избавляет от ответственности. Категорически не рекомендуется использование грубо-просторечной лексики, а также упоминания физиологических отклонений;

✔ Сообщения не по теме. Публикуемые сообщения должны соответствовать заявленной теме сообщества;

✔Размещение постов о помощи животным в сообществе без обязательных тегов: #вдобрыеруки #помощь #без рейтинга

Так же напоминаем, что на Пикабу существует специальное сообщество ."Айболит. Помощь животным"

Дорогие друзья, которым не нравятся посты с просьбами о помощи животным, очень просим Вас добавить теги: #помощь #вдобрыеруки и др. в черный список.

✔Плагиат! Не присваивай себе чужие идеи, записи и другой авторский контент.

✔Некорректные комментарии в комментариях, откровенный флуд, провокации, пропаганду жестокого и безответственного отношения к животным и пр. участники заносятся в черный список без дополнительных пояснений и предупреждений!

✔Нарушать правила Пикабу.


Заметили нарушение правил: напишите @zluchkin, @Darsinka

Не забывайте ставить тег "моё", "кот", "котомафия" если выкладываете своих любимцев.

Мы есть в VK: @kotomafia_fan, отмечайте нас на Ваших фото.