[Java] Getter, Setter

전우석·2024년 3월 19일

Java

목록 보기
13/24

Getter, Setter

객체 지향 프로그래밍에서 정보 은닉과 캡슐화를 위해 사용되는 개념이다.
클래스의 내부 구현을 숨기고, 외부에서의 직접적인 접근을 막아 객체의 데이터를 보호한다.

  • 보통 접근 제한자와 함께 사용되며, 클래스의 프로퍼티(속성)에 대한 접근을 제어하는 역할을 한다.
  • getter, setter 미사용
// Getter, Setter를 사용하지 않고 접근 제한자를 public으로 둔 경우
public class Car {
    public String model;  // 모델명 public
}

public class Main(){
		Car car = new Car();
		
		car.model = "blah";  // 외부에서 잘못된 값을 여과 없이 주입할 수 있다.
}
  • getter, setter 사용
// 접근 제한자를 private으로 두고 Getter, Setter를 사용하는 경우
public class Car2 {
    private String model;  // 모델명 private
    
    public String getModel(){
		    return this.model;  // 필드 자체가 아닌, 필드의 값을 반환
    }
    public void setModel(String model){
		    // setter에 유효성 검사 로직 추가 가능
		    this.model = model;
    }
}

public class Main(){
		Car car = new Car();
		
		car.setModel("blah");  // 외부에서 잘못된 값을 주입하여도 내부에서 유효성 검사가 실행되도록 할 수 있다.
}

Getter

클래스의 특정 프로퍼티 값을 읽을 수 있도록 하는 메서드

  • 일반적으로 프로퍼티 이름 앞에 get이라는 접두어를 붙인 것이 메서드명이 된다.
    • 예를 들어, name 프로퍼티의 경우 getName() 메서드가 된다.
  • Getter 메서드는 해당 프로퍼티의 값을 반환하는 동시에, 추가적인 로직을 포함하도록 할 수도 있다.

Setter

클래스의 특정 프로퍼티 값을 설정하거나 수정할 수 있도록 하는 메서드

  • 일반적으로 프로퍼티 이름 앞에 set이라는 접두어를 붙인 것이 메서드명이 된다.
    • 예를 들어, name 프로퍼티의 경우 setName(String name) 메서드가 된다.
  • Setter 메서드를 통해 프로퍼티에 할당되는 값에 대해 유효성 검사 로직을 추가할 수 있다.
    • 이를 통해 필드 변수가 잘못된 값이 설정되는 것을 방지하며, 프로퍼티의 값이 안전하게 변경할 수 있도록 한다.

0개의 댓글