작성
·
124
0
package ex3;
public class MaxCounter {
static int count;
private int maxcount;
public MaxCounter(int x) {
this.maxcount=x;
}
public void increment(){
if (count<maxcount){
count++;
}
else{
System.out.println("최대값을 초과할 수 없습니다.");
}
}
public int getCount(){
return count;
}
}
위에처럼 풀어도 되나요? 작동되긴 합니다.
답변 1
0
안녕하세요. zzzzz님, 공식 서포터즈 OMG입니다.
강의코드
public class MaxCounter {
private int count = 0;
private int max;
public MaxCounter(int max) {
this.max = max;
}
public void increment() {
if (count >= max) {
System.out.println("최대값을 초과할 수 없습니다.");
return;
}
count++;
}
public int getCount() {
return count;
}
}
와 비교하여 3가지의 차이점이 보이네요.
(1) static 변수로 변경
static 변수로 사용하신 이유만 명확히 알고 계신다면 (static을 적용했을 때 인스턴스 변수와의 차이를 구분 할 수있는가) 강의 문제풀이에 있어 문제는 없을 것 같습니다.
(2) 생성자 파라미터 이름(x) 과 max <-> maxcount
특별한 이유가 있지 않다면 일반적으로 필드(maxcount) 이름과 생성자 파라미터 이름(x)을 동일하게 하는 것 같습니다.(IDE의 기능을 통해서 단축키로 빠르게 생성해내거나 할 때도 동일하게 매칭시켜주기도 하죠)
또한 최댓값을 표현하기 위한 변수명으로 max, maxCount, maxNumber 등 다양하게 사용할 것 같습니다.
maxcount로 해도 문제는 없습니다.
(3) if/else 조건문
if / else문을 early return 패턴이라고 하여 else문을 되도록 사용하지 않도록 지향하는 패턴이 있는데요, 저도 이러한 패턴을 선호하고 강의에서도 해당 패턴을 적용하였습니다.
아래 글을 참고하여 본인의 소신 혹은 생각을 갖고 적용하시면 될 것 같아요.
https://thearchivelog.dev/article/are-early-returns-any-good/
감사합니다.