Найти тему
Програзнания

Инкапсуляция и её отличие от сокрытия С#

Оглавление

Инкапсуляция — это свойство системы дающие возможность объединить данные и методы взаимодействующие с ними в классе и скрыть детали реализации от пользователя.

Пример из жизни.

Машины разных лет
Машины разных лет

Ещё в конце XIX века что бы доехать из точки A в точку B на автомобиле, не являясь при этом пассажиром, требовалось быть как минимум быть превосходным механиком понимать устройство двигателя внутреннего сгорания и в целом быть идти на шаг впереди от остальных людей в области познания механики, но прошло меньше 200 лет и появились автомобили способные доставить человека из A в B почти без какого-либо взаимодействия с автомобилем он провезёт человека по маршруту.Современное авто объединяет множество систем и механизмов скрывая их устройство и взаимодействие между ними предоставляя простые инструменты взаимодействия человека с ним это и есть инкапсуляция.

Отличие инкапсуляции от сокрытия.

Основная задача: сокрытия — это защита данных при сокрытии сложности, инкапсуляции — это скрыть сложность системы.

Модификаторы доступа: сокрытие — private, инкапсуляция — public, internal, private.

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

Пример.

Простой пример инкапсуляции на С sharp.

Класс info.
Класс info.

Публичные методы get...() и set...() являются методами взаимодействия с переменными экземпляра класса. Переменные number и name являются приватные и доступ к ним на прямую в не класса невозможен.Часто данные методы называют геттеры и сеттеры.

Метод Main.
Метод Main.

Создание объекта класса Info.

-4

Вывод программы.

Ошибка.
Ошибка.

Но так сделать нельзя, это и есть одно из проявлений инкапсуляции.

Спасибо за прочтение статьи.

Если у вас появились какие-либо мысли о данном материале обязательно оставляйте их в комментариях.