Инкапсуляция в Java: сокрытие данных и контроль доступа
Инкапсуляция — один из четырёх столпов ООП (наряду с наследованием, полиморфизмом, абстракцией). Это механизм объединения данных (полей) и методов, работающих с ними, в единую единицу (класс). Поля скрываются от внешнего доступа — data hiding.
Как достичь инкапсуляции
- Объявить поля
private. - Предоставить публичные методы доступа: геттеры (
getXxx()) и сеттеры (setXxx()).
Пример: класс EncapTest
public class EncapTest {
private String name;
private String idNum;
private int age;
public int getAge() { return age; }
public String getName() { return name; }
public String getIdNum() { return idNum; }
public void setAge(int newAge) { age = newAge; }
public void setName(String newName) { name = newName; }
public void setIdNum(String newId) { idNum = newId; }
}
Использование
public class RunEncap {
public static void main(String args[]) {
EncapTest encap = new EncapTest();
encap.setName("James");
encap.setAge(20);
encap.setIdNum("12343ms");
System.out.print("Name: " + encap.getName() + " Age: " + encap.getAge());
}
}
Результат: Name: James Age: 20
Преимущества инкапсуляции
- Поля можно сделать только для чтения (только геттер) или только для записи (только сеттер).
- Класс полностью контролирует, какие значения хранятся в полях (валидация в сеттерах).
java
- Ключевое слово final в Java: переменные, методы и классы
- Оператор instanceof в Java: полное руководство с примерами
- Инкапсуляция в Java: практическое руководство по скрытию данных
- Статические вложенные классы в Java: использование, отличия и примеры
- Анонимные внутренние классы в Java: определение, синтаксис и практические примеры
- Паттерн Singleton в Java: как реализовать и безопасно использовать
- Рефлексия в Java: инспекция классов, методов и полей во время выполнения
- Освоение Java ObjectOutputStream: сериализация, методы и практические примеры
- Освоение Java Generics: создание переиспользуемого, типобезопасного кода
- Мастерство файловых операций в Java с java.io: создание, чтение, запись и удаление