Что такое public, private и protected в объектно-ориентированном программировании?

Что такое public, private и protected в объектно-ориентированном программировании?

5 ответов


Они модификаторы доступа и помогите нам реализовать инкапсуляция (или сокрытие информации). Они сообщают компилятору, какие другие классы должны иметь доступ к определяемому полю или методу.

private - только текущий класс будет иметь доступ к полю или методу.

protected - только текущий класс и подклассы (а иногда и классы одного пакета) этого класса будут иметь доступ к поле или метод.

public - любой класс может ссылаться на поле или вызывать метод.

предполагается, что эти ключевые слова используются как часть объявления поля или метода в определении класса.


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


Они на самом деле не понятия, а скорее конкретные ключевые слова, которые, как правило, происходят (с несколько иной семантикой) в популярных языках, таких как C++ и Java.

по сути, они предназначены для того, чтобы позволить классу ограничивать доступ к членам (полям или функциям). Идея заключается в том, что чем меньше один тип имеет доступ к другому типу, тем меньше зависимостей может быть создано. Это позволяет легко изменять объект доступа, не затрагивая объекты, которые ссылаются на он.

в широком смысле, public означает, что каждый может получить доступ, private означает, что доступ разрешен только членам одного класса, а protected означает, что также разрешены члены подклассов. Однако каждый язык добавляет к этому свои особенности. Например, C++ позволяет наследовать непублично. В Java также есть уровень доступа по умолчанию (пакет), и есть правила о внутренних классах и т. д.


открытый элемент-это элемент, доступный из любого другого класса. Вы просто должны знать, какой это объект, и вы можете использовать оператор точки для доступа к нему. Protected означает, что класс и его подклассы имеют доступ к переменной, но не к любым другим классам, им нужно использовать геттер/сеттер для чего-либо с переменной. Частный означает, что только этот класс имеет прямой доступ к переменной, все остальное нуждается в методе/функции для доступа или изменения этих данных. Надеюсь, это помогает.


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