백업하는 인생

getter, setter 메소드 본문

java/이론

getter, setter 메소드

sunmn 2022. 8. 23. 10:18
1. setter : 데이터는 외부에서 접근하지 않도록 막고, 메소드는 공개해서
                외부에서 메소드를 통해 데이터에 접근하도록 유도
2. getter : 필드값을 가공 후 외부로 값을 전달하는 것
3. getter,setter 사용이유: 데이터를 보호하기 위해서 

 

데이터를 외부에서 읽고 변경 할 수 있을 경우, 데이터의 무결성이 깨질 수 있다.

 

이것을  방지하기 위해서  직접적으로 필드에 접근하는 방식이 아니라,

setter메소드를 통해 데이터에 접근하도록 유도 한 후 그 안에서 처리를 하고

getter 메소드를 통해서 값을 되돌려 주는 방식을 선호한다.

 

이 때 데이터 복사본을 던져주기 때문에 원래 객체의 데이터를 손상 시키지 않는다.

따라서 원본 데이터는 안전하다. 

 

예를 들어보자. 

Car 이라는 클래스안에 speed라는 필드가 선언되어있는데 private가 붙어있다. 

private이 붙는 순간 speed는 외부에서 직접적으로 접근이 불가능 하다. 

Car.java - private 필드에는 접근이 불가능하다
CarExample.java - 외부에서 private필드로 바로 접근했기 때문에 오류

 

이 경우 getter & setter 메소드를 이용하여 

setter로 값을 받아와서 처리한 다음 getter를 통해서 값을 리턴해주어야 한다. 

Car.java

 

CarExample.java

일단 setSpeed는 매개변수를 외부에서 값(60)을 받아와서 setSpeed내부에 있는 if문 계산을 한 후

처리한 결과 값을 this.speed, 즉 제일 상단에 있는 private int speed에 넣어준다. 

 

private int speed에 계산된 값이 담기면 getSpeed는 그 값을 받아와서 외부(CarExample.java)로 그 값을 되돌려준다.

 

getter, setter는 서로 짝이기 때문에 항상 같이 사용 된다. 

'java > 이론' 카테고리의 다른 글

싱글톤  (0) 2022.08.23
인스턴스멤버와 정적멤버  (0) 2022.08.22
클래스와 객체2_클래스와 객체 생성하여 이용해보기  (0) 2022.08.21
클래스와 객체1_ 클래스와 객체란?  (0) 2022.08.21
변수  (0) 2022.08.02
Comments