Java 패키지 - 캡슐화된 최대 카운터
MaxCounter 클래스를 만드세요.
최대 값을 지정하는 것과 최대 값까지 숫자를 증가하는 기능입니다.
필드
- counter: 내부에서 사용하는 숫자. 초기 값은 0으로 설정합니다.
- max: 최대 값 생성자로 호출된 경우 맥스값을 지정합니다.
- increment(): 숫자를 1씩 증가합니다.
- getCounter(): 지금까지 증가한 값을 출력합니다.
클래스 요구사항
- 접근 제어자를 사용해서 클래스를 캡슐화하도록 합니다.
- 해당 클래스는 다른 클래스에서도 사용할 수 있도록 합니다.
MaxCounterMain.java
package access.foo;
public class MaxCounterMain {
public static void main(String[] args) {
MaxCounter cnt = new MaxCounter(2);
cnt.increment();
cnt.increment();
cnt.increment();
int counter = cnt.getCounter();
System.out.println(counter);
}
}
출력 결과
최대 값 이상으로 설정할 수 없습니다. by increment()
2
풀이
MaxCounter 를 다음과 같이 생성하도록 한다.
package access.foo;
public class MaxCounter {
private int counter;
private int max;
public MaxCounter(int max) {
this.max = max;
}
public void increment() {
if (counter >= max) {
System.out.println("최대 값 이상으로 설정할 수 없습니다. by increment()");
} else {
counter++;
}
}
public int getCounter() {
return max;
}
}
참고사항
해당 increment() 메소드를 아래와 같이 만들어도 무방하다.
협업에서는 아래 코드를 권장한다. 검증 로직과 실행 로직이 나누어져 있어서 명확하기 때문이다.
public void increment() {
// 검증 로직
if (counter >= max) {
System.out.println("최대 값 이상으로 설정할 수 없습니다. by increment()");
return;
}
// 실행 로직
counter++;
}