본문 바로가기

language/자바

getter와 setter

getter와 setter를 왜 쓰는걸까?

이유는 외부에서 제한없이 접근하는 것을 방지하는 것이다. (캡슐화, 객체무결성...)

 

정확히 말하자면 private 접근제한자로 아무나 접근을 못하게하고 getter와 setter로 접근하는 것!

 

global(전역 변수)를 좋아하지 않는 이유와 마찬가지이다.

어디서든 접근 가능하다는 것

= 해당 변수를 어디서든 바꿀수있다는것.

= 신뢰성을 하락한다는 것

 

setter는 외부의 접근을 최소화하여 값을 함부로 못바꾸게해

그러면 getter는 굳이 접근을 막을 필요가 있을까? 단순히 값을 읽기만 하는거잖아?

이거에 대한 답변은 일부만 보여주려고 라고 할수 있을것이다.

 

가령 다음과 같은 class가 있다고 하자

이름과 번호만 알고싶어도

아래와 같이 다 뜨게된다

많으면 많을수록 지저분해진다.

 

 

 

getter를 적용해보자

* 인텔리제이에서는 오른쪽마우스 눌러서 쉽게 생성이 가능하다.

 

훨씬 적은 내용을 볼수 있다.

이렇게 노출시키는 내용의 범위 제한하는 것을 은닉성이라고 한다.

 

 

 

** getter와 setter를 쓰려면 Lombok 라이브러리가 필요하다.
  [settings] -> [Plugins] 에서 추가가능하다.

 

 

*** @Getter + @Setter  + ...  = @data 어노테이션

@Data 이거 하나로 커버가능

'language > 자바' 카테고리의 다른 글

[java] 상속에서 조심해야 하는 점  (0) 2022.07.13
[java]static의 사용이유  (0) 2022.07.11
자바 HttpServletRequest  (0) 2022.01.27
자바 Integer.parseInt() 진수 표현  (0) 2022.01.19
자바 2진수 앞에 0 출력  (0) 2022.01.19