Java

자바 은닉화: 캡슐화 encapsulation

hs_developer 2022. 5. 24. 00:47

캡슐화는 변수와 클래스를 하나로 묶는 작업이다. 캡슐화의 중요 목적은 중요한 데이터를 보존, 보호하기 위해 사용한다. 클래스에 담는 내용 중 중요한 데이터나 기능을 외부에서 접근하지 못하게 막고 객체가 제공하는 필드와 메소드를 통해서만 접근이 가능하다.

 

이렇게 접근을 제한함으써 유지보수나 확장 시 오류의 범위를 최소화 할 수 있고 객체 내의 정보 손상과 오용을 방지하고 데이터가 변경되어도 다른 객체에 영향을 주지 않아 독립성이 좋다.

 

캡슐화 방법

1. 멤버 변수에 접근 제어자 private를 붙인다. (private: 자기 클래스에서만 접근 할 수 있는 것)

2. 멤버 변수에 값을 넣고 꺼내 올 수 있는 메소드를 만든다. (set/get 이용해 메소드를 만든다)

 

 

123
jay
public class School {

	private int id;
	private String name;
	
	public int getId() {
		return id;
	}

	public void setId(int id) {
		this.id = id;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public static void main(String[] args) {
		
		School school = new School();
		
		school.setId(123);
		school.setName("jay");
		
		System.out.println(school.getId());
		System.out.println(school.getName());	
		
	}
}

 

위의 예제를 보면 private 접근제어자를 통해 변수를 선언했기 때문에 외부에서 접근할 수 없다. 그래서 getter/setter 메소드를 통해 변수에 값을 저장하고 가져온다.

 

 

 

 

참고