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
}
}
'Backend > 객체 지향 프로그래밍' 카테고리의 다른 글
[Java] 클래스 상속 (Inheritance) (0) | 2022.04.17 |
---|---|
[Java] Annotation (메타데이터) (0) | 2022.04.16 |
[Java] 접근 제한자 (Access Modifier) (0) | 2022.04.14 |
[Java] 패키지와 import문 (0) | 2022.04.13 |
[Java] 상수 (final 필드) (0) | 2022.04.12 |