getter 와 setter.
Dev Center/JAVA start / 2010. 7. 16. 17:57
자바를 처음 배울때 게터와 세터라고 말을 하는데, 이것이 무엇을 이야기 하는지 고이장히 궁금해 했었다. 다들 아무렇지도 않게, 당연하게 사용하고 있는 이것. 무엇이고, 왜 써야하는걸까?
맴버를 변수를 지켜라!
클래스를 새로 만들게 되면, 맴버 변수도 만들게 된다. 그리고 그 맴버 변수는 '닷' 연산자를 통해 접근이 가능하다.
class 사람 {
int 키 = 170;
int 몸무게 = 60;
}
int 키 = 170;
int 몸무게 = 60;
}
이 클래스의 키와 몸무게를 사용하기 위해서는 '사람.키' 와 '사람.몸무게' 라는 이름으로 접근이 가능하다. 하지만, 이렇게 직접적으로 접근을 하게 될 경우에는 문제가 발생하게 된다. 사람의 클래스에서 사용되는 키와 몸무게는 위에서 명시간 상수가 일정하게 유지되어야 함에도 불구하고 아무나 접근을 해서 변경이 가능하다는 것이다. 보통의 사람인 키 = 170, 몸무게 = 60 의 사람을 만들려고 사람 객체를 생성했는데, 의도하지 않은 키 = 20, 몸무게 = 80 의 사람 객체가 만들어 질 수 있다는 것이다. 그래서 일반적으로 클래스의 맴버 필드에는 클래스에서만 접근하여 수정이 가능한 'private' 로 선언을 하게 된다.
class 사람 {
private int 키 = 170;
private int 몸무게 = 60;
}
private int 키 = 170;
private int 몸무게 = 60;
}
하지만 이렇게 되면 객체에서는 키와 몸무게를 변경할 수 없다는 것이다. 이것을 가능하게 해주는 것이 케터와 세터 메소드의 사용이다.
게터와 세터
게터와 세터는 전혀 특별한 것이 아니다. 그냥 일반적인 클래스안에 포함된 메소드이다. 단지 그 열할이 맴버 필드의 변수를 변경해 주는 기능을 갖음으로써 클래스의 맴버 필드를 보호하는 것이다.
class 사람 {
private int 키 = 170;
private int 몸무게 = 60;
public int get키() {
return 키;
}
public void set키(int a) {
키 = a;
}
}
private int 키 = 170;
private int 몸무게 = 60;
public int get키() {
return 키;
}
public void set키(int a) {
키 = a;
}
}
'get키()' 가 게터가 돠고 'set키'가 세터 메소드가 되는 것이다. 위의 클래스에서는 키를 변경하기 위해 '사람.키' 라는 이름으로 접근을 할 수 없고, 사람의 객체를 생성한 후 세터 메소드를 통해서만 접근이 가능하다.
사람 people = new 사람();
people.set키(180);
people.set키(180);
사람의 키를 알아내기 위해서는 게터 메소드를 통해 객체의 값을 가져올 수 있다.
System.out.println(people.get키());
어떻게 보면 굉장히 불필요한 작업이라고도 볼 수 있겠지만, 개발자의 의도를 표현하면서, 사용자에게 또 다른 가능성을 부여하는 발전적인 기능이라고 할 수 있다.
'Dev Center > JAVA start' 카테고리의 다른 글
이것 아니면 저것. if ~ else 문 (0) | 2010.07.18 |
---|---|
배열의 배열 (0) | 2010.07.17 |
getter 와 setter. (1) | 2010.07.16 |
배열만 알아도 한단계 업그레이드! (0) | 2010.07.15 |
클래스를 만들고 사용하기. (2) | 2010.07.13 |
자바의 기본 형태와 접근 수정자. (0) | 2010.07.12 |
댓글을 달아 주세요
정리된 내용 잘 읽었습니다. 감사합니다.