본문으로 바로가기

1. Getter, Setter 메소드

  • 일반적으로 객체 지향 프로그래밍에서 객체의 무결성을 위해 객체의 데이터는 외부에서 직접적으로 접근하는 것을 막아야 합니다.
  • 객체 지향 프로그래밍에서는 메소드를 통해서 데이터를 읽고, 변경하는 방법을 선호/권장합니다.
  • 필드를 private로 선언해서 외부로부터 보호하고, 필드에 대한 Getter, Setter 메소드를 작성해서 필드 값을 안전하게 사용/변경하는 것을 권장
  • 필드 타입이 boolean일 경우에는 get으로 시작하지 않고 is로 시작하는 것이 관례
  • 요즘 실무에서는 Setter 메소드를 사용하는 것은 권장하지 않고 따로 비즈니스 로직을 가진 메소드를 이용해 데이터를 검증하여 필드 변경을 권장합니다. 

 

예시

import java.time.LocalDate;

public class Computer {
    private String modelName;
    private boolean status;
    private LocalDate productionDate;

    //==Getter 메소드==//
    public String getModelName() {
        return modelName;
    }

    public boolean isStatus() {
        return status;
    }

    public LocalDate getProductionDate() {
        return productionDate;
    }

    //==Setter 메소드==//
    public void setModelName(String modelName) {
        this.modelName = modelName;
    }

    public void setStatus(boolean status) {
        this.status = status;
    }

    public void setProductionDate(LocalDate productionDate) {
        this.productionDate = productionDate;
    }
}
import java.time.LocalDate;

public class Main {
    public static void main(String[] args) {
        // 인스턴스 생성
        Computer computer = new Computer();

        // Setter를 이용해 필드 값 변경
        computer.setModelName("Mac Book Air M1");
        computer.setStatus(true);
        computer.setProductionDate(LocalDate.now());

        // Getter를 이용해 필드 값 받아오기
        System.out.println(computer.getModelName()); // Mac Book Air M1
        System.out.println(computer.isStatus()); // true
        System.out.println(computer.getProductionDate()); // 2022-04-03
    }
}