[JAVA 복습] 접근 제어자 (Access Modifier) 와 캡슐화
접근제어자란?
변수나 메소드의 사용 권한은 다음과 같은 접근 제어자를 사용하여 설정할수 있다.
- private : 메소드는 해당 클래스에서만 접근이 가능
- default : 해당 패키지 내에서만 접근이 가능
- protected : 메소드는 동일 패키지의 클래스 또는 해당 클래스를 상속받은 다른 패키지의 클래스에서만 접근이 가능
- public : 어떤 클래스에서라도 접근이 가능
private -> default -> protected -> public 순으로 보다 많은 접근을 허용한다.
캡슐화 Encapsulation
위에서 접근 제어자를 사용하는 이유가 캡슐화에 해당된다.
- 꼭 필요한 정보와 기능만 외부에 오픈하는 것
- 대부분의 멤버 변수와 메서드를 감추고 외부에 통합된 인터페이스만은 제공해 일관된 기능을 구현하게 하는 것
- 각각의 메서드나 멤버 변수를 접근함으로써 발생하는 오류를 최소화 할 수 있는 장점도 있다
아래 코드와 같이 변수에 직접 접근을 막고 메서드를 통해 변수에 접근이 가능하며,
이때 setter 메서드에 변수에 대한 값의 제한을 주거나 조건을 따로 줄 수 있게 된다.
흔히 Spring을 이용한 개발을 진행할시 DTO(객체)의 역할을 하는 클래스를 만들때 주로 사용하게 된다.
public class Time {
private int hour;
private int minute;
private int second;
public int getHour() {
return hour;
}
public void setHour(int hour) {
if(hour < 0 || hour > 23) return;
this.hour = hour;
}
public int getMinute() {
return minute;
}
public void setMinute(int minute) {
if(minute < 0 || minute > 59) return;
this.minute = minute;
}
public int getSecond() {
return second;
}
public void setSecond(int second) {
if(second < 0 || second > 59) return;
this.second = second;
}
}
'Language > JAVA' 카테고리의 다른 글
[JAVA] 생성자 특징 (기본 생성자) (0) | 2022.03.15 |
---|---|
[JAVA] 배열 (Array) 다루기 (0) | 2022.03.15 |
[TIL] 컬렉션 - java.util.Queue<E> 인터페이스 & 구현클래스 (0) | 2020.09.08 |
[TIL] 컬렉션 - java.util.Map<K, V> 인터페이스 & 구현클래스 (0) | 2020.09.07 |
[TIL] 컬렉션 - java.util.Set<E> 인터페이스 & 구현 클래스 (0) | 2020.09.07 |
댓글