1. 캡슐화란?
데이터를 숨기는 것.
클래스 외부에서 데이터에 접근할 수 없도록 하는 것을 캡슐화라고 합니다.
이것을 위해 알아야 하는 것이 접근자입니다.
public
모든 클래스에서 접근 가능
private
해당 클래스에서만 접근 가능
protected
해당 클래스에서 접근 가능
해당 클래스를 상속받은 클래스 접근 가능
같은 package에서 접근 가능
외부 클래스 접근 불가능
보통 인스턴스 변수는 private으로 메소드는 public을 사용합니다.
2. accessor
accessor는 보통 게터(getter)라고 부르며 인스턴스 변수의 값을 리턴하는 역할을 합니다.
3. mutator
mutator는 보통 세터(setter)라고 부르며 인스턴스 변수의 값을 설정하는 역할을 합니다.
Dog클래스입니다.
인스턴스 변수인 'name'은 private으로 메소드들은 public으로 만들었습니다.
게터(accessor)와 세터(mutator)를 만들어서 'name'에 접근 가능하도록 했습니다.
public class Dog {
private String name;
public dog(String name) {
this.name = name;
}
public void bark() {
System.out.println(name + "이 짖습니다.");
}
// setter
public void setName(String name) {
this.name = name;
}
// getter
public String getName() {
return name;
}
}
변수의 들어가는 값에 범위 제한을 두어야 하는 경우가 많은데
캡슐화를 하지 않고 외부에서 바로 값을 설정하면 문제가 생길 수 있습니다.
그래서 accessor(게터), mutator(세터) 메소드를 사용하여 변수에 접근하도록 만듭니다.
세터(mutator)를 사용할 경우 세터(mutator)에서 올바른 값인지 확인하도록 만들어두면
변수를 사용할 때마다 확인해야 하는 수고를 덜 수 있습니다.
캡슐화의 이점
accessor = get() : 인스턴스의 변수 값을 return
mutator = set() : 인스턴스의 변수 값을 설정
harry 라는 Employee 인스턴스를 만든다
harry의 Hireday 변수인 d를 만든다.
'📌 java > Object-oriented Programming' 카테고리의 다른 글
Homework_W4 (0) | 2020.04.07 |
---|---|
Homework_W3 (0) | 2020.03.31 |
java - method call (0) | 2020.03.31 |
java - public의 의미 (0) | 2020.03.27 |
Homework_W2-02 (0) | 2020.03.27 |