자.

클래스에는 멤버 변수가 있지.

근데 멤버 변수를 수정하거나 그 데이터를 가져올 때, 객체.name 이렇게 접근하지 않고

public getter(){} 혹은 public setter(){} 함수를 만들어서 가져오게 돼.

근데 굳이 왜 그러는걸까?

 

생각해보자.

만약에 멤버 변수에 직접 접근해서 값을 바꿀 수 있게 된다면, 휴먼 에러가 발생할 확률이 있어.

 

예를 들어서, 객체.name에는 반드시 string인 이름만 들어가야 하는데, decimal인 숫자를 집어넣는다든지

객체.age에는 자연수만 들어가야 하는데 음수가 들어간다든지, 이런걸 걸러낼 수가 없는거야.

 

그래서 setter 함수에서

if (age>0) :

pass

else :

fail

이렇게 예외 처리를 하는거지.

 

그러면 멤버 변수에 바로 접근하는건 막고 메소드로 접근하는 것만 허가해야 될 것 아냐?

 

그래서 멤버 변수 자체에 private을 걸어두는거야.

그러면 객체가 갖고 있는 메소드만 접근이 가능하니까.

그래서 메소드는 누구나 쓸 수 있게 public으로 걸어두는거고.

 

이렇게 하다보니까 당연히 getter도 만들어서 쓸 수밖에 없는거야.

왜냐하면 멤버 변수가 setter만 접근할 수 있게 하기 위해서 private를 설정해놨으니까

일반적인 방법으로는 접근해서 값을 가져올 수 없거든.

그리고 또 getter를 만들었을 때 좋은 점은, 멤버 변수의 값을 가져와서 내가 가공해서 리턴할 수 있다는 것도 있지.

 

끝!

  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기