캡슐화💊
📚 참고
자바의 정석 기초편 (객체지향개념만)
캡슐화와 접근 제어자
- 접근 제어자를 사용하는 이유
- 외부로부터 데이터를 보호하기 위함
- 직접 접근을 막고 메서드를 통한 간접 접근만 허용
- 외부에는 불필요하고 내부적으로만 사용되는 부분을 감추기 위함
- 접근 제어자의 범위를 최대한 좁혀놓고, 필요 시 확장하는게 좋은 방법
예제 1
public class Time {
public int hour;
public int minute;
public int second;
}
Time t = new Time();
t.hour = 25;
- 외부에서 해당 데이터에 자유롭게 접근할 수 있다.
예제 2
public class Time {
private int hour;
private int minute;
private int second;
public int getHour() { return hour; }
public void setHour(hour) {
if (isNotValidHour(hour)) return;
this.hour = hour;
}
// 해당 클래스에서만 사용하는 메서드 => 외부에 노출시킬 필요 없음
private boolean isNotValidHour(int houre) {
return hour < 0 || hour > 23;
}
}
Time t = new Time();
t.hour = 25; // 🚩에러
t.setHour(25); // ✅성공
- hour 변수의 접근 제어자를 private으로 설정했으므로 외부에서 직접 접근을 할 수 없다.
- 접근 제한이 없는 setHour 메서드를 통해 세팅값을 검증한 후, 멤버변수에 값을 세팅한다.
'JAVA > 객체지향개념' 카테고리의 다른 글
추상 클래스 (Abstract Class), 추상 메서드 (Abstract Method) (0) | 2021.03.20 |
---|---|
다형성 (Polymorphism) (0) | 2021.03.19 |
접근 제어자 (Access Modifier) (0) | 2021.03.18 |
import문, static import문 (0) | 2021.03.18 |
패키지, 클래스 패스 (0) | 2021.03.17 |
댓글
이 글 공유하기
다른 글
-
추상 클래스 (Abstract Class), 추상 메서드 (Abstract Method)
추상 클래스 (Abstract Class), 추상 메서드 (Abstract Method)
2021.03.20 -
다형성 (Polymorphism)
다형성 (Polymorphism)
2021.03.19 -
접근 제어자 (Access Modifier)
접근 제어자 (Access Modifier)
2021.03.18 -
import문, static import문
import문, static import문
2021.03.18