본문 바로가기
개발 관련 지식/JAVA

Getter, Setter 메소드

by 권태일1147 2020. 3. 31.

일반적으로 객체 지향 프로그래밍에서 객체의 데이터는 객체 외부에서 직접적으로 접근하는 것을 막는다.

그 이유는 객체의 데이터를 외부에서 마음대로 읽고 변경할 경우 객체의 무결성이 깨질 수 있기 때문이다.

이러한 문제점을 해결하기 위해 객체 지향 프로그래밍에서는 메소드를 통해 데이터를 변경하는 방법을 선호한다.

메소드는 매개변수 값을 검증해서 유효한 값만 데이터로 저장할 수 있기 때문에 외부에서 데이터에 접근 하는 것은 막고 메소드는 공개해서 외부에서는 메소드를 통해 데이터에 접근하도록 유도하는 것이다.

이렇게 데이터의 값을 유요한 값으로 설정할 수 있도록 접근시켜주는 메소드가 Setter 메소드이다.

void setSpeed(double speed) {
    if(speed < 0){
        this.speed = 0;
        return;
    } else {
        this.speed = speed;
    }
}

 

외부에서 객체의 데이터를 읽기만 하는 것도 메소드를 사용하는 것이 좋다. 객체 외부에서 객체의 필드값을 사용하기에 부적절한 경우도 있는데 이런 경우에는 메소드로 필드값을 변경하고 외부로 전달하면 된다. 이런 메소드를 Getter 메소드라고 한다.

double getSpeed(){
    double km = speed * 1.6;
    return km;
}

 

클래스를 선언할 때 가능하다면 필드를 private으로 선언해서 외부의 접근을 제한하고, 필드에 대한 Setter, Getter 메소드를 만들어서 필드값을 안전하게 변경하거나 사용하는 것이 좋다. 

 

필드 타입이 boolean일 때는 get으로 시작하지 않고 is로 시작하는 것이 관례이다.

private boolean stop;

public boolean isStop(){
    return stop;
}

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

'개발 관련 지식 > JAVA' 카테고리의 다른 글

상속  (0) 2020.03.31
어노테이션  (0) 2020.03.31
import문  (0) 2020.03.31
싱글톤(Singleton)  (0) 2020.03.31
객체와 클래스  (0) 2020.03.30