Encapsulation: Protecting Your Code and Data
Encapsulation — это один из принципов объектно-ориентированного программирования (ООП), который позволяет объединять данные и методы, работающие с этими данными, внутри одного объекта и предоставлять доступ к ним только через определенные методы.
Целью использования инкапсуляции является скрытие защищенных данных от прямого доступа клиента. Это позволяет контролировать изменения данных, обеспечивает защиту от неправильных операций и повышает надежность программы.
Пример кода:
class Car {
private String model;
private int year;
public void setModel(String model) {
this.model = model;
}
public String getModel() {
return model;
}
public void setYear(int year) {
this.year = year;
}
public int getYear() {
return year;
}
}
В данном примере у класса Car есть приватные поля модели и года выпуска. Доступ к этим полям осуществляется только через методы setModel, getModel, setYear, getYear. Это означает, что клиентский код не имеет прямого доступа к данным модели и года выпуска, а может только использовать методы для получения и изменения этих данных.
Такой подход позволяет управлять доступом к данным и применять необходимые проверки и логику при изменении или получении значений. Например, можно добавить проверку на валидность года выпуска или использовать логику для событий, которые должны произойти при изменении модели или года.
Car car = new Car();
car.setModel("Toyota");
car.setYear(2022);
System.out.println(car.getModel()); // Выведет "Toyota"
System.out.println(car.getYear()); // Выведет 2022
В данном примере создается объект car класса Car. Прямой доступ к данным модели и года выпуска отсутствует, поэтому используются методы setModel и setYear для их установки. Затем методы getModel и getYear позволяют получить значения модели и года.