[Java] Getter와 Setter 메서드

원설아·2023년 3월 27일
0

Java

목록 보기
1/2
post-thumbnail

🧶 서론

객체 지향 프로그래밍 언어인 자바에서는 데이터를 보호하기 위해 외부에서 직접적으로 접근하는 것을 막아두는 경우가 있다.

외부에서 마음대로 데이터를 읽고 변경하게 되면 무결성(해당 객체의 결점이 없는 상태)이 깨질 수 있기 때문이다.


예를 들어, 나이나 키, 자동차의 속도 같은 것들은 음수가 될 수 없다.
만약 외부에서 해당 데이터를 음수로 변경하게 되면 객체의 무결성이 깨진다.

MyCar.speed = -30;

이러한 경우 접근 제어자 private를 사용해서 필드의 직접적인 접근은 막아두고,
메서드를 통해 데이터에 접근 및 변경하는 방법이 권장된다.

이때 gettersetter 메서드를 사용하면 객체의 무결성을 해치지 않고 데이터를 안전하게 사용할 수 있다. 또한, 필드를 노출하면서도 필드의 내부 표현을 숨길 수 있다.



✨ Getter 메서드

외부에서 객체의 데이터를 읽을 때 사용한다.
아무런 값을 전달하지 않고 호출한다.

외부에서 객체의 데이터를 읽어올 때도 안전하게 값을 유지할 수 있다.


private 타입 fieldName

public 리턴타입 getFieldName() {
	return fieldName;
}

getFieldName() 과 같이 get + 필드 이름 형식의 이름을 가진다.
접근 제한자는 public, 리턴 타입은 필드의 리턴 타입으로, 리턴 값은 필드값으로 한다.



📌 Setter 메서드

외부에서 객체의 데이터를 수정할 때 사용한다.

객체가 입력 값을 setter 메서드의 매개변수로 넘겨주고,
값을 검사한 후 그 값이 필드의 값으로 적절한 경우에만 저장하게 된다.

값을 변경하는 역할은 생성자에서도 가능하다.
그러나 생성자가 없는 경우도 있기 때문에, setter를 이용해 값을 입력할 수 있다.


public 리턴타입 setFieldName(타입 fieldName) {
	this.fieldName = fieldName;
}

setFieldName(타입 fieldName)과 같이 set + 필드이름 형식의 이름을 가진다.
접근 제한자는 public, 리턴 타입은 void로, 함수의 매개 변수 타입은 필드 타입으로 한다.






참고 : https://m.blog.naver.com/leejjoo112/222007699174, https://kephilab.tistory.com/54

0개의 댓글