Инкапсуляция в 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
мин.
Свойства в ООП (getters, setters)
14
мин.
Наследование в Java
15
мин.