_

Always be tactful

프로그래밍/배웠어, 자바

[Java] Getter, Setter 메서드 / 접근 제어자

funczun 2025. 1. 24. 01:24
접근 제어자


getter/setter

 private 필드에 직접 접근할 수 없을 때, 보통 getter 메서드와 setter 메서드를 제공한다. 이렇게 하면 객체를 안전하게 조회하거나 변경할 수 있다.

public class TestForInt {
    private int number;

    // getter
    public int getNumber() {
        return number;
    }

    // setter
    public void setNumber(int number) {
        if (number != 0) {
            this.number = number;
        }
    }
}

*get + 변수명 (낙타 표기법)

*set + 변수명 (낙타 표기법)

public class TestForBoolean {
    private boolean stop;
    
    // getter
    public boolean isStop() {
        return isStop;
    }

    // setter
    public void setStop(boolean stop) {
        this.stop = stop;
    }
}

*is + 변수명 (낙타 표기법)

*set + 변수명 (낙타 표기법)

 

▶ boolean 타입의 경우, get이 아닌 is를 쓰는 이유는 거창한 이유 없이 더 자연스럽기 때문이다.


 무분별한 Getter/Setter 사용은 객체 지향의 핵심인 '정보 은닉'을 저해시킬 수 있다. 따라서 꼭 필요한 경우가 아니라면 사용하지 않는 것이 낫다. (이에 대해선 추후 자세히 다루도록 하겠다.)

 

 추가로, 불변 객체의 경우 관례상 set 대신 with을 사용한다. 이 내용도 나중에 정리해서 다시 올리도록 하겠다.

728x90