Java
Инкапсуляция в ООП.
Такой вопрос. В интернете написано, что инкапсуляция - сокрытие. Считается ли использование public static при объявлении переменной инкапсуляцией? Или только private, protected?
:D (начинается долгая сказка о том, что инкапсуляция — не просто лишь сокрытие)


Игорь Ростовский
)
Игорь Ростовский
Можно тогда вопрос? Это же оно?)

Инкапсуляция в смысле сокрытия - это сокрытие внутреннего поведения класса от его пользователя, а не сокрытие каких-то полей. Ничего общего с модификаторами доступа это понятие не имеет.
сокрытие реализации - это запрет на доступ к внутренним переменным. чтобы внешний код не смог изменить состояние объекта. например так выглядит внутренняя переменная
private final List topics = new ArrayList<>();
а так выглядит к ней доступ
public List getTopics() {
return Collections.unmodifiableList(topics);
}
private final List topics = new ArrayList<>();
а так выглядит к ней доступ
public List getTopics() {
return Collections.unmodifiableList(topics);
}
Игорь Ростовский
и это.. инкапсуляция? Или же нет, если отталкивать от ответа выше?
Инкапсуляция.
Инкапсуляция представляет собой механизм программирования, объединяющий код и данные, которыми он манипулирует. Он предотвращает несанкционированный доступ к данным извне и их некорректное использование. В объектно-ориентированных языках программирования код и данные организуются в некое подобие “черного ящика”. В результате такого объединения кода и данных создается объект. Иными словами, объект — это компонент, поддерживающий инкапсуляцию.
Данные и код внутри объекта могут быть закрытыми (private) или открытыми (public). Закрытый код или данные доступны только элементам, содержащимся в том же самом объекте. Поэтому обратиться к такому коду или данным вне пределов объекта невозможно. Если код или данные являются открытыми, то к ним можно обращаться из любой части программы (несмотря на то, что они находятся внутри объекта). Как правило, открытые элементы объекта используются для создания управляемого интерфейса к его закрытым элементам.
Основной языковой конструкцией, поддерживающей инкапсуляцию в Java, является класс. Классы будут подробнее рассматриваться далее в этой книге, но о них нужно сказать несколько слов уже теперь. Класс определяет тип объекта. В нем определяются как данные, так и код, выполняющий определенные действия над этими данными. В Java определение или так называемая спецификация класса служит для построения объектов. Объекты представляют собой экземпляры классов. Следовательно, класс — это ряд “чертежей”, по которым строится объект.
Код и данные в составе класса называются членами класса. Данные, определенные в составе класса, принято называть переменными-членами или переменными экземпляра, а код, выполняющий действия над этими данными, — методами-членами, или просто методами. Метод — это термин, которым в Java принято обозначать подпрограмму. Если вы знакомы с языками C/C++, то, вероятно, знаете, что в этих языках для той же самой цели служит термин функция.
Инкапсуляция представляет собой механизм программирования, объединяющий код и данные, которыми он манипулирует. Он предотвращает несанкционированный доступ к данным извне и их некорректное использование. В объектно-ориентированных языках программирования код и данные организуются в некое подобие “черного ящика”. В результате такого объединения кода и данных создается объект. Иными словами, объект — это компонент, поддерживающий инкапсуляцию.
Данные и код внутри объекта могут быть закрытыми (private) или открытыми (public). Закрытый код или данные доступны только элементам, содержащимся в том же самом объекте. Поэтому обратиться к такому коду или данным вне пределов объекта невозможно. Если код или данные являются открытыми, то к ним можно обращаться из любой части программы (несмотря на то, что они находятся внутри объекта). Как правило, открытые элементы объекта используются для создания управляемого интерфейса к его закрытым элементам.
Основной языковой конструкцией, поддерживающей инкапсуляцию в Java, является класс. Классы будут подробнее рассматриваться далее в этой книге, но о них нужно сказать несколько слов уже теперь. Класс определяет тип объекта. В нем определяются как данные, так и код, выполняющий определенные действия над этими данными. В Java определение или так называемая спецификация класса служит для построения объектов. Объекты представляют собой экземпляры классов. Следовательно, класс — это ряд “чертежей”, по которым строится объект.
Код и данные в составе класса называются членами класса. Данные, определенные в составе класса, принято называть переменными-членами или переменными экземпляра, а код, выполняющий действия над этими данными, — методами-членами, или просто методами. Метод — это термин, которым в Java принято обозначать подпрограмму. Если вы знакомы с языками C/C++, то, вероятно, знаете, что в этих языках для той же самой цели служит термин функция.
Похожие вопросы
- Значение инкапсуляции
- ООП в java
- Вы сразу вникли в ооп или вам также как и мне понадобилось много практики для понимания концепции?
- ООП: что такое инкапсуляция, абстракция, полиморфизм и наследование?
- Основные принципы ООП: инкапсуляция, полиморфизм, наследование Объясните пожалуйста простыми словами?
- Вопрос по ООП. Инкапсуляция, наследие, полиморфизм. Как понять все это чудо?
- Изучнние ООП - стоит ли сейчас?
- ООП. Стоит ли браться за ООП новичку в программировании?:
- Для чего использовать ООП в php