Инкапсуляция является одной из четырех основных концепций ООП. Другие три — это наследование, полиморфизм и абстракция.
Инкапсуляция в Java — это механизм объединения данных (переменных) и кода, действующих на данные (методы), в одно целое. В инкапсуляции переменные класса будут скрыты от других классов и доступны только через методы их текущего класса. Поэтому он также известен как скрытие данных .
Для достижения инкапсуляции в Java —
Объявите переменные класса как частные.
Предоставить общедоступные методы установки и получения для изменения и просмотра значений переменных.
Объявите переменные класса как частные.
Предоставить общедоступные методы установки и получения для изменения и просмотра значений переменных.
Базы данных для разработчиков
пример
Ниже приведен пример, демонстрирующий, как добиться инкапсуляции в Java.
/* File name : EncapTest.java */
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;
}
}
Публичные методы setXXX () и getXXX () являются точками доступа переменных экземпляра класса EncapTest. Обычно эти методы называются геттерами и сеттерами. Поэтому любой класс, который хочет получить доступ к переменным, должен обращаться к ним через эти методы получения и установки.
Доступ к переменным класса EncapTest можно получить с помощью следующей программы:
/* File name : RunEncap.java */
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());
}
}
Это даст следующий результат —
Поля класса могут быть сделаны только для чтения или только для записи.
Класс может иметь полный контроль над тем, что хранится в его полях.