본문 바로가기
Spec UP - Backend/나도코딩의 자바기본편

Chap_07. Getter & Setter

by TIS_Ha 2023. 4. 26.
반응형

Getter : 값을 가지고오는 메소드

Setter : 값을 설정하는 메소드

 

Getter 선언 방법

데이터타입 get변수명() { return 변수명; }

String getModelName() {return modelName;}

 

Setter 선언 방법

void set변수명(전달값) { 변수명 = 전달값; }

void setModelName(String ModelName){ this.modelName = modelName; }

Getter와 Setter를 활용하는 이유를 아래 예제를 통해 보자.

 

Ex) 블랙박스 상품에 대해서 5000원할인 이벤트를 한다고 해보자.

b1.price = b1.price-5000; 이 적용되어야하는데 실수로 b1.price = -5000; 으로 적용해버렸다.

그럼 블랙박스의 가격이 - 5000원이 되버리는 문제가 발생할 수 있다.

 

Ex) 고객이 블랙박스의 해상도를 질문했다고 해보자.

b1.resolution = FHD라는 답변을 해야하는데 실수로 b1.resolution을 주석처리해버렸다.

그럼 고객문의에 대해 null 이라고 답변을 하게되는 문제가 발생할 수 있다.

위와 같은 실수를 예방하기 위해 Getter와 Setter를 활용해보자.

아래와 같이 BlackBox 클래스 내에 Getter와 Setter를 생성하였다.

public class BlackBox {
    String modelName; //모델명
    String resolution; //해상도
    int price; //가격
    String color; // 색상
    int serialNumber; //시리얼번호

    static int counter=0; //시리얼번호를 생성(0, 1, 2 ++ ) - 클래스변수(모든객체에 공통적용)

    static boolean canAutoReport = false; //자동신고기능
    //Getter : 값을 가지고 오는 메소드
    //Setter : 값을 설정하는 메소드
    String getModelName(){
        return modelName;
    }
    void setModelName(String modelName){
        this.modelName = modelName;
    }

    String getResolution(){ //isEmpty: 비어있는문자
        if(resolution == null || resolution.isEmpty()){
            return "판매자에게 문의하세요.";
        }
        return resolution;
    }

    void setResolution(){
        this.resolution = resolution;
    }

    int getPrice(){
        return price;
    }

    void setPrice(int price){
        if(price<100000){
            this.price = 100000;
        }else{
            this.price = price;
        }
    }

    String getColor(){
        return color;
    }

    void setColor(String color){
        this.color = color;
    }
...

}

위 실수 예제의 경우를 대응하기 위하여 아래 기능을 추가하였다.

- getReolution() 은 resolution 값이 null 이거나 빈 문자인 경우 "판매자에게 문의하세요" 를 리턴.

- setPrice() 은 전달된 price 값이 10만원 이하인 경우에는, 10만원으로 적용. (하한선 설정)

 

그리고 아래와 같이 b2 객체를 만들고 동일한 실수를 했다고 해보자.

-Resolution 값 설정 안함.

-Price 값에 - 5000원 적용.

동일한 실수를 하였지만 Getter와 Setter를 활용하여 가격과 해상도가 다르게 출력된 것을 확인할 수 있다.

 

이처럼 Getter와 Setter를 이용하게 되면 값을 설정하다가 발생하는 오류를 줄일 수 있고,

값을 가져오는 과정에서도 값이 없다거나 이상한 값을 가져올 때 대안으로 줄 수 있는 값을 설정할 수 있다.

반응형

'Spec UP - Backend > 나도코딩의 자바기본편' 카테고리의 다른 글

Chap_07. 패키지  (0) 2023.04.28
Chap_07. 접근 제어자  (0) 2023.04.27
Chap_07. 생성자  (0) 2023.04.25
Chap_07. This  (1) 2023.04.25
Chap_07. 클래스 메소드  (0) 2023.04.21

댓글