자바-캡슐화
Encapsulation네 가지 기본 OOP 개념 중 하나입니다. 나머지 세 가지는 상속, 다형성 및 추상화입니다.
Java의 캡슐화는 데이터 (변수)와 데이터 (메소드)에 작용하는 코드를 단일 단위로 함께 래핑하는 메커니즘입니다. 캡슐화에서 클래스의 변수는 다른 클래스에서 숨겨지며 현재 클래스의 메서드를 통해서만 액세스 할 수 있습니다. 따라서data hiding.
자바 캡슐화를 달성하려면-
클래스의 변수를 전용으로 선언하십시오.
변수 값을 수정하고 볼 수있는 공용 setter 및 getter 메서드를 제공합니다.
예
다음은 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 클래스의 인스턴스 변수에 대한 액세스 지점입니다. 일반적으로 이러한 메서드를 게터 및 세터라고합니다. 따라서 변수에 액세스하려는 모든 클래스는 이러한 getter 및 setter를 통해 변수에 액세스해야합니다.
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());
}
}
이것은 다음 결과를 생성합니다-
산출
Name : James Age : 20
캡슐화의 이점
클래스의 필드는 읽기 전용 또는 쓰기 전용으로 만들 수 있습니다.
클래스는 필드에 저장된 내용을 완전히 제어 할 수 있습니다.