본문 바로가기
JAVA

[JAVA] getter()와 setter()는 왜 쓸까??

by SICDev 2021. 4. 15.
반응형

 

우리가 웹을 개발할때 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