java - getter / setter

yunzivv·2025년 3월 15일

JAVA 기초

목록 보기
18/23

getter / setter


클래스에는 필드(속성)가 있다. 이 필드의 접근제한자는 private로 선언되는 것이 일반적이다. 아무데서나 필드에 접근하는 것은 위험하기 때문이다. 객체 지향 프로그래밍에서 객체의 데이터는 외부에서 직접적으로 접근하는 것을 막는다. 객체의 무결성 때문이다.

대신 다른 클래스에서 필드에 접근하는 방법이 바로 gettersetter다. 외부에서 메서드를 통해 데이터에 접근하게 한다.

자바에서는 getter와 setter가 정의된 것은 아니지만 그 역할을 하는 메서드를 만들어주기도 한다.

인텔리제이에서 필드를 선언한 경우 Alt + `Insert' 단축키를 입력하면 Generate에서 Getter and Setter를 선택할 수 있다. 이 메뉴는 getter와 setter를 자동으로 생성해준다.


getter


클래스의 private 필드를 반환하는 메서드다.
반환할 때 객체 외부에서 사용할 단위 등으로 가공해서 반환할 수도 있다.

  • 접근제한자 : public
  • 리턴 타입 : 필드 타입
  • 메서드명 : get + 필드명
    - 만약 필드 타입이 boolean일 경우 메서드명은 is + 필드명으로 하는 것이 관례
  • 리턴값 : 필드
int getTemperature() {
	return temperature * 10; // 필드값 온도*10 반환
}

setter

객체 외부에서 private 필드를 수정하는 메서드다.
setter는 필드의 경계라인을 설정할 수 있다.

  • 접근제한자 : public
  • 리턴 타입 : void
  • 메서드명 : set + 필드명
  • 매개변수 타입 : 필드 타입
void setTemperature(int temperature) {

	// 만약 매개변수로 전달받은 변수가 -1000 이상 && 1000 이하라면
    // 필드값 매개변수로 초기화
    // 만약 조건식을 만족하지 못한다면 0으로 초기화
	if(temperature <= 1000 && temperature >= -1000) {
    	this.temperature = temperature
    } else {
    	this.temperature = 0;
    }
}

0개의 댓글