자바/기본 개념
[자바] 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 가 필요하다는 사실을 알 수 있다.
반응형