Топ-100Инкапсуляция в Java
LogoCodOrbits

Раздел: ООП

Здесь вы познакомитесь с объектно-ориентированным программированием в Java: классы, наследование, инкапсуляция и полиморфизм и многое другое.

Все разделы
Иконка ООП

Инкапсуляция в Java

Last updated: 3 мая 2025 г.

ООП основывается на трёх ключевых принципах:Инкапсуляция, Полиморфизм, Наследование.

Начнем с инкапсуляции.

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

Это означает, что тому, кто создал объект класса и пользуется им, совсем не обязательно знать его внутреннюю реализацию — достаточно понимания доступных методов и правил их использования. То есть можно работать с полями и методами объекта, даже не видя сам класс, из которого он создан.

Если вспомнить пример из прошлого урока про кошку, то тому кто создал и пользуется классом кошки не обязательно видеть класс кошки.

Также инкапсуляция значит защиту внутренних данных класса от другого кода, никак не относящемуся к данному классу.

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

Простейший пример базовой инкапсуляции:

1class Cat{
2    String name;
3    String color;
4
5    Cat (String catName, String catColor) {
6        name = catName;
7        color = catColor;
8    }
9
10    void sayMeow(){
11        System.out.println("Meow");
12    }
13}
14
15class Dog {
16    //Отсюда классу Dog не доступны поля кошки name и color,
17    //а также метод sayMeow. То есть в этом классе нельзя
18    //использовать содержимое класса Cat.
19    String name;
20    String color;
21
22    Dog (String dogName, String dogColor) {
23        name = dogName;
24        color = dogColor;
25    }
26
27    void sayWuf(){
28        System.out.println("Wuf");
29    }
30}
31
32class Incapsulation {
33    public static void main(String[] args) {
34        Cat somecat = new Cat("Barsik", "White");
35        System.out.println(somecat.name);
36    }
37}

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


Следующие уроки

Модификаторы доступа

12
мин.

Similar Articles Icon
Divider

Свойства в ООП (getters, setters)

14
мин.

Similar Articles Icon
Divider

Наследование в Java

15
мин.

Similar Articles Icon