Today Yewon Learned

[JAVA] Setter 메소드와 Getter 메소드 본문

JAVA

[JAVA] Setter 메소드와 Getter 메소드

데브워니 2021. 11. 10. 15:50

객체 지향

- Setter 메소드와 Getter 메소드를 사용하는 근본적 이유는 '캡슐화(encapsulation)'를 달성하기 위함

* 캡슐화(encapsulation) - 서로 관련있는 데이터와 그 데이터를 다루는 메서드를 하나의 클래스로 묶는 것

* 정보은닉(Information Hiding) - 다른 객체에게 자신의 정보를 숨기고, 오직 연산만을 통해서 접근할 수 있도록 함

- 객체 지향 프로그래밍에서는 메소드를 통해 데이터를 변경하는 방법을 선호

 

1. Setter 메소드

- 데이터는 외부에서 접근하지 못하도록 하고, 메소드는 외부에 공개하여 메소드를 통해 데이터에 접근하도록 유도

 

 ex) 자동차 속도를 setSpeed( ) 메소드로 변경할 경우 아래와 같이 검증 코드를 작성

void setSpeed(double speed) { // Setter 메소드
    if(speed < 0) {
        this.speed = 0; // 매개값이 음수라면, 필드에 0으로 저장하고 메소드 실행 종료
        return;
    } else {
        this.speed = speed;
    }
}

 

 

2. Getter 메소드

- 외부에서 객체의 데이터를 읽을 때 사용

ex) 자동차 속도를 마일에서 Km 단위로 환산해서 외부로 리턴하는 getSpeed( ) 메소드

double getSpeed() { // Getter 메소드
    double km = speed * 1.6; // 필드 값인 마일(speed)를 km 단위로 환산 후 외부로 리턴
    return km;
}

 

 

3. Setter / Getter 메소드 선언 방식

private 타입 fieldName; // 필드 접근 제한자 : private

//Getter
public 리턴타입 getFieldName() {
    return fieldName;
}

//Setter
public void setFieldName(타입 fieldName) {
    this.fieldName = fieldName;
}

- 클래스를 선언할 때 가능하다면 필드를 private 로 선언해서 외부로부터 보호하고

- 필드에 대한 Setter / Getter 메소드를 작성해서 필드값을 안전하게 변경 / 사용하는 것이 좋음

'JAVA' 카테고리의 다른 글

[JAVA] Generic(제네릭)  (0) 2021.11.15
[JAVA] Casting(캐스팅 : 형변환)  (0) 2021.11.12
[JAVA] 상속  (0) 2021.11.11
[JAVA] HashMap  (0) 2021.11.10
[JAVA] ArrayList  (0) 2021.11.10
Comments