반응형
우리가 웹을 개발할때 getter()함수와 setter()함수를 만들어서 사용한다.
왜??? 나는 지금까지 왜 라는 의문점을 던진적이 없다.🤔🤔
그래서 찾아봤다 왜 변수의 값을 가져오거나 설정할때 getter()함수와 setter()함수를 쓰는것인지..
대부분의 블로그들을 찾아보면
객체의 무결성을 보장하기 위함이다.
라고 얘기하고있다.
- 객체의 무결성이란
- 말그대로 객체가 결함이 없어야한다는것이다.
- 쉽게 말해 객체가 프로그램 도중 의도치않게 수정이나 변경될 가능성을 막아 무결성을 지킨다는것이다.
예를들어
Class People {
int hungry = 50;
}
이라는 클래스가 있다고 가정해보자!!
이 hungry(배고픔)는 100이 max라고 가정을하고, People(사람)이 배고픔을 없애기위해 다음과 같이 해줄것이다!
Class A {
People 홍길동 = new People();
홍길동.hungry = 100;
}
이런식으로 고치면 홍길동은 배가 불러졌다..!
어떻게....? 배가 불러질수 있는가....? 😮😮😮
이런 예시가 맞는지 모르겠지만....우리가 홍길동의 배를 강제로 갈라 음식을 넣어준것이다!!! 이게 정상적인 방법인가...?
우리는 이렇게 하지 못하도록 막기위하여 다음과같이 해야한다.
Class People {
private int hungry = 50;
public eat(){
hungry += 10;
}
}
hungry라는 변수에 직접적으로 접근을 못하도록 private으로 만들고,
eat()이라는 함수를 통해 hungry에 접근하도록 하기위해 eat() 메서드를 public으로 만들어준다!
Class A {
People 홍길동 = new People();
홍길동.eat();
}
홍길동이 무언가를 먹어서 배고픔을 채우게 할수 있다!!
이것이 바로 객체지향이다.
객체지향에서는 변수를 private로 만들고 변수의 상태는 메서드에의해서 변경이 되어야한다..!
반응형
'JAVA' 카테고리의 다른 글
[Java] length/length()/size() 정리 (0) | 2021.09.09 |
---|