inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

김영한의 실전 자바 - 기본편

접근 제어자-문제풀이1번 질문있습니다.

181

zzzzz

작성한 질문수 192

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;
    }
}

위에처럼 풀어도 되나요? 작동되긴 합니다.

java 객체지향

답변 1

0

OMG

안녕하세요. 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/

감사합니다.

질문있습니다

0

23

1

1번 문제 질문입니다.

0

29

1

음악플레이어 문제 중 코드질문

0

24

1

9장 상속 문제와 풀이 질문

0

35

1

강의 자료에 사소한 오타가 있습니다.

0

46

2

매서드 참조값 반환??

0

63

1

접근제어자 - 쇼핑카트 문제에서 상품출력 부분 메서드

0

66

1

자바 기본편 - .(dot)에 관한 질문입니다!

0

83

1

공부방법

0

72

2

상속관계에서 멤버 변수는 오버라이딩 되는 개념이 아닌가요?

0

80

1

static method 질문

0

62

1

캡슐화 문제풀이 ShoppingCart 요구사항에 문제가 있어보입니다. 피드백 주세요

0

93

1

Method1에서 Student 객체

0

71

1

3강 18. null 질문

0

65

1

this 와 super의 호출 순서는 부모-자식관계 떄문만인가요?

0

73

1

팩토리 메서드 패턴과 일반 생성자 사용의 장단점

0

95

1

문의

0

102

1

9장 상속 문제와 풀이 부분 궁금한게 있어서 질문드립니다

0

86

1

상속과 그에 따른 메모리 구조 질문

0

59

1

call메소드에서 멤버에 접근하는 방식을 이해 못 했습니다

0

72

1

수강기한

0

133

1

기본편 객체지향 프로그래밍에 대한 정의

0

84

1

섹션10 상속 메모리 구조 및 문제 관련 질문

0

85

1

추가 지식 학습

0

150

2