Что такое общедоступное, частное и защищенное в объектно-ориентированном программировании?
Что такое общедоступное, частное и защищенное в объектно-ориентированном программировании?
Ответы:
Они являются модификаторами доступа и помогают нам реализовать инкапсуляцию (или скрытие информации). Они сообщают компилятору, какие другие классы должны иметь доступ к определяемому полю или методу.
private
- Только текущий класс будет иметь доступ к полю или методу.
protected
- Только текущий класс и подклассы (а иногда и классы того же пакета) этого класса будут иметь доступ к полю или методу.
public
- Любой класс может ссылаться на поле или вызывать метод.
Предполагается, что эти ключевые слова используются как часть объявления поля или метода в определении класса.
Все три являются модификаторами доступа и ключевыми словами, которые используются в классе. Все, что объявлено публично, может использоваться любым объектом внутри класса или вне класса, переменные в частном порядке могут использоваться только объектами внутри класса и не могут быть изменены с помощью прямого доступа (поскольку они могут изменяться с помощью таких функций, как функция друга) . Все, что определено в защищенном разделе, может использоваться классом и только что производным от него классом.
На самом деле это не концепции, а скорее конкретные ключевые слова, которые, как правило, встречаются (с немного другой семантикой) в популярных языках, таких как C ++ и Java.
По сути, они предназначены для того, чтобы позволить классу ограничивать доступ к членам (полям или функциям). Идея состоит в том, что чем меньше одному типу разрешен доступ в другом типе, тем меньше может быть создано зависимостей. Это позволяет более легко изменять объект, к которому осуществляется доступ, не затрагивая объекты, которые на него ссылаются.
В широком смысле общедоступный означает, что доступ разрешен всем, частный означает, что доступ разрешен только членам одного и того же класса, а защищенный означает, что члены подклассов также разрешены. Однако каждый язык добавляет к этому свои особенности. Например, C ++ позволяет наследовать непублично. В Java также есть уровень доступа по умолчанию (пакет), есть правила для внутренних классов и т. Д.
Открытый элемент - это элемент, доступный из любого другого класса. Вам просто нужно знать, что это за объект, и вы можете использовать оператор точки для доступа к нему. Защищенный означает, что класс и его подклассы имеют доступ к переменной, но не любым другим классам, им нужно использовать геттер / сеттер, чтобы делать что-либо с переменной. Закрытый означает, что только этот класс имеет прямой доступ к переменной, все остальное нуждается в методе / функции для доступа или изменения этих данных. Надеюсь это поможет.
как и выше, но качественно:
private - least access, best encapsulation
protected - some access, moderate encapsulation
public - full access, no encapsulation
чем меньше доступа вы предоставляете, тем меньше деталей реализации утекает из ваших объектов. меньшая утечка такого рода означает большую гибкость (также известную как «более слабая связь») с точки зрения изменения способа реализации объекта без нарушения работы клиентов объекта. это действительно фундаментальная вещь, которую нужно понять.
Подводя итог, в объектно-ориентированном программировании все моделируется в виде классов и объектов. Классы содержат свойства и методы. Ключевые слова Public, private и protected используются для указания доступа к этим членам (свойствам и методам) класса из других классов или других .dll или даже других приложений.