Top.Mail.Ru
Ответы

Правильно ли я понял смысл инкапсуляции?

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

Если взять простое определение это штука дополнительная, которая дает ещё одно управление программой, но из кода, а не внешне да или не совсем?

По дате
По рейтингу
Аватар пользователя
Новичок

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

Аватар пользователя
Высший разум

Это не процесс, это часть кода
Это не дополнительное, это неотъемлемая часть кода
Никакого управления программой оно не даёт, это и есть часть программы

Просто-напросто указали в программе, чтобы в эту часть пользователь (или другие части той же программы) не лез никак. Вообще никак, в том числе никакими командами

Попробую ответить по-китайски. Вы поймёте, что такое инкапсуляция тогда, когда сможете объяснить себе, зачем она нужна.
А нужна она, по-видимому, для того, чтобы упростить понимание кода и сделать его более надёжным - защитить часть данных от неправильного использования.

Аватар пользователя
Мудрец

Не совсем. Инкапсуляция — это прячем "внутренности" класса, оставляем доступные извне только safe методы и поля, чтобы не накосячили. Принцип "не трогай мои private переменные, братишка".

Аватар пользователя
Просветленный

Вообще смотри.
У тебя есть допустим такой код.

1
 a= 4+3 

Все. Пока нет капсуляции.

12
 def calculate(a,b):
   return a+b 

Вот у тебя уже есть капсула.

123
 class calculator():
 def calculate(self,a,b): 
   return a+b 

Вот у тебя уже более глубокая капсула.
Потом можно идти дальше, наследование и прочее, разные уровни доступа для методов и так далее.