반응형
Notice
Recent Posts
Recent Comments
Link
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Archives
Today
Total
05-19 04:57
관리 메뉴

ImJay

[자바] Getters 와 Setters 를 사용하는 이유 본문

자바/기본 개념

[자바] Getters 와 Setters 를 사용하는 이유

ImJay 2022. 6. 29. 19:16
반응형

Getters

서로 다른 객체 A, B 가 있다고 가정하자.

public class A {
    B B = new B();
    int x = B.x;
}
public class B {
    int x;
}

객체 A 는 객체 B 의 변수 x 를 참조하고 있다.

 

여기서, 객체 B의 x 변수명을 x1 로 수정한다면?

객체 A는 x1 를 사용할 수 없을 것이고, 이는 캡슐화가 제대로 이루어지지 않았다고 할 수 있다.

 

그렇다면 여기서 getter를 사용해보자.

public class A {
    B B = new B();
    int x = B.getX();
}
public class B {
    int x1;
    
    public int getX() {
        return x1;
    }
}

객체 B의 x 변수명이 x1 으로 수정되어도 객체 A는 아무런 영향 없이 기존의 x 값을 사용할 수 있다.


Setters

서로 다른 객체 A, B 가 있다고 가정하자.

public class A {
    int x = 0;
    B B = new B();
    B.x = x;
}
public class B {
    int x;
}

 

객체 A 의 x 값을 객체 B의 x 값으로 전달하고 싶다.

그러나 위와 같은 방법으로 전달하게 되면, 객체 B의 x에 직접 선언해주는 것이므로 캡슐화가 제대로 이루어지지 않았다.

 

그렇다면 여기서 setter를 사용해보자.

public class A {
    int x = 0;
    B B = new B();
    B.setX(x);
}
public class B {
    int x;
    
    public void setX(int x) {
        this.x = x;
    }
}

이런식으로 간접적으로 객체 A의 x 값을 객체 B의 x 값으로 전달해줄 수 있다.

 

캡슐화를 깨지 않기 위해 Getters 와 Setters 가 필요하다는 사실을 알 수 있다.

반응형
Comments