블로그 이미지
'무른모'란 부드럽다라는 뜻을 가진 '무르다'라는 말과 도구, 연장을 뜻하는 '연모'라는 순 우리말의 합성어로 소프트웨어를 말합니다. seanhigher

카테고리

분류 전체보기 (161)
Blog srart (16)
Dev Center (94)
Real Life (13)
Mac life (21)
Naver life (17)
Total633,812
Today36
Yesterday88
자바를 처음 배울때 게터와 세터라고 말을 하는데, 이것이 무엇을 이야기 하는지 고이장히 궁금해 했었다. 다들 아무렇지도 않게, 당연하게 사용하고 있는 이것. 무엇이고, 왜 써야하는걸까?


맴버를 변수를 지켜라!
클래스를 새로 만들게 되면, 맴버 변수도 만들게 된다. 그리고 그 맴버 변수는 '닷' 연산자를 통해 접근이 가능하다.

class 사람 {
    int 키 = 170;
    int 몸무게 = 60;
}

이 클래스의 키와 몸무게를 사용하기 위해서는 '사람.키' 와 '사람.몸무게' 라는 이름으로 접근이 가능하다. 하지만, 이렇게 직접적으로 접근을 하게 될 경우에는 문제가 발생하게 된다. 사람의 클래스에서 사용되는 키와 몸무게는 위에서 명시간 상수가 일정하게 유지되어야 함에도 불구하고 아무나 접근을 해서 변경이 가능하다는 것이다. 보통의 사람인 키 = 170, 몸무게 = 60 의 사람을 만들려고 사람 객체를 생성했는데, 의도하지 않은 키 = 20, 몸무게 = 80 의 사람 객체가 만들어 질 수 있다는 것이다. 그래서 일반적으로 클래스의 맴버 필드에는 클래스에서만 접근하여 수정이 가능한 'private' 로 선언을 하게 된다.

class 사람 {
    private int 키 = 170;
    private int 몸무게 = 60;
}

하지만 이렇게 되면 객체에서는 키와 몸무게를 변경할 수 없다는 것이다. 이것을 가능하게 해주는 것이 케터와 세터 메소드의 사용이다.


게터와 세터
게터와 세터는 전혀 특별한 것이 아니다. 그냥 일반적인 클래스안에 포함된 메소드이다. 단지 그 열할이 맴버 필드의 변수를 변경해 주는 기능을 갖음으로써 클래스의 맴버 필드를 보호하는 것이다.

class 사람 {
     private int 키 = 170;
     private int 몸무게 = 60;
    public int get키() {
        return 키;
    }
    public void set키(int a) {
        키 = a;
    }
}

'get키()' 가 게터가 돠고 'set키'가 세터 메소드가 되는 것이다. 위의 클래스에서는 키를 변경하기 위해 '사람.키' 라는 이름으로 접근을 할 수 없고, 사람의 객체를 생성한 후 세터 메소드를 통해서만 접근이 가능하다.

사람 people = new 사람();
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
Posted by seanhigher

댓글을 달아 주세요

  1. 2020.05.07 18:17 신고 모딩  댓글주소  수정/삭제  댓글쓰기

    정리된 내용 잘 읽었습니다. 감사합니다.

최근에 달린 댓글

글 보관함