[Basic] Getter And Setter를 왜써야하나?

Song-YunMin·2020년 11월 24일
0

Java

목록 보기
3/4
post-thumbnail

Getter And Setter를 왜써야하나?

일반적으로 프로그래밍을 할 때, Object들의 Member field(데이터)를 외부에서 직접 접근하는 행위를 막는다.

Member FieldPrivate 접근 제한자로 막아두고, 각 필드의 Getter, Setter로 접근하는 방식을 사용한다.

이렇게 해야하는 이유는 객체의 무결성을 보장하기 위함이다.

예를들어 People 이라는 Class에 height(키) 라는 Member field 가 존재한다, 이 데이터는 0보다 작으면 안되지만,

외부에서 접근할 경우 음수 값을 Set 함으로써 객체의 무결성이 깨질 수 있다.

이를 방지하기 위해
Member FieldPrivate로 만들어 외부의 접근을 제한한 후 Setter를 사용해 전달받은 값을 내부에서 직접 Member Field에 넣어주고,

Member Field값을 가져올 때도, Getter를 사용해 실제 값을 숨긴 채로 내부의 값을 꺼내올 수 있다.

Example

class Example{
    // Member Field
    private int a;

    // Getter And Setter
    public int getA() 
        return a;
    }

    public void setA(int a) {
        this.a = a;
    }
}

class Example_2{
    public static void main(String[] args){
        add();
    }
    public static void add(){
        Example ex = new Example();     // Example Class Instance 생성
        ex.setA(5);                     // Example Class 멤버 변수 Setter 이용 대입
        int a = ex.getA();              // Setter 를 통해 대입한 A를 Getter 를 통해 Get
        System.out.println("a = " + a); // 출력
    }
}
profile
고독한 서버 개발 3년차

0개의 댓글