자바, 객체지향!

자바, 객체지향!

자바 프로그래밍의 꽃, 조립식 프로그래밍!

12 접근 제한자와 게터 세터

# 접근 제한자와 게터 세터 ## 들어가며.. --- 만약 당신의 지갑이 누구에게나 공개되어있다면..? 생각만 해도 끔찍하다. ![클라우드스터딩-자바-접근-제한자-지정자-modifier](https://i.imgur.com/7LrA4sG.png) 프로그램에서 또한 마찬가지다. 어떤 건 공개해도 되지만, 어떠한 것은 감추어야만 한다. 이를 위한 개념을 배워보자. 1. 접근 제한자란 2. public과 private 3. 게터와 세터 ## 1. 접근 제한자란 --- #### 무엇? 접근 제한자란, 접근 권한을 제한하는 키워드다. #### 왜씀? 여러분의 지갑이 모두에게 공개돼있다면? 또는 여러분의 개인 정보가 외부에 모두 알려졌다면 어떨까? 안될 것이다. 이를 해결하기 위한 키워드. 바로 접근 제한자다. #### 종류? 접근 제한자의 종류는 총 4가지로, 외부 접근을 거부하는 private(비공개)에서부터 모든 접근을 허용하는 public(완전 공개)까지 존재한다. ![클라우드스터딩-자바-접근제한자-종류-private-default-protected-public](https://i.imgur.com/rnpOQPj.png) ## 2. public과 private --- #### 무엇? public 키워드는 완전한 공개를 의미한다. 모두가 사용할 수 있는 공공의 산물이 되는 것이다. 이와 반면 private은 비공개를 의미한다. 오직 해당 클래스 내부에서만 사용할 수 있게 된다. ![클라우드스터딩-자바-접근제한자-public-private](https://i.imgur.com/HH6B1QL.png) #### 적용 및 장점 접근 제한자는 필드와 메소드에 적용될 수 있다. public 선언되면 외부의 접근이 가능하나, private의 경우 외부 접근이 불가능하다. ![클라우드스터딩-자바-public-vs-private-비교-차이](https://i.imgur.com/ALzAH4M.png) 이를 통해 외부의 악의적 접근을 예방할 수 있다. ## 3. 게터와 세터 --- #### 필요성? private 선언된 필드는 외부 접근이 불가능하다. 심지어 정상적인 사용자도 직접 접근할 수 없다. 이를 해결하기 위해 게터와 세터가 필요하다. ![클라우드스터딩-자바-게터-세터-필요성](https://i.imgur.com/6C1oT57.png) #### 역할? 게터와 세터를 사용하면, private 필드를 우회하여 가져오거나 변경할 수 있다. ![클라우드스터딩-자바-게터-세터-역할](https://i.imgur.com/Se0SR2S.png) ## 요약 --- ![클라우드스터딩-접근제한자-게터-세터-요약](https://i.imgur.com/lH6c84w.png) #### 접근 제한자 - 접근 제한자란, 외부로부터 접근을 제어하는 키워드이다. - 접근 제한자의 종류는 4가지로, private/default/protected/public 이 있다. - private은 비공개, public은 완전 공개를 의미한다. #### 게터와 세터 - private 필드는 외부 접근이 불가능하다 - 게터를 사용하면 private 필드를 우회적으로 가져올 수 있다. - 세터를 사용하면 private 필드를 우회적으로 변경할 수 있다. ## 확인하기 --- <div class="interact_responsive_padding" style="padding:100% 0 0 0;position:relative;margin-bottom:5px;"><div class="interact_responsive_wrapper" style="height:100%;left:0;position:absolute;top:0;width:100%;"><iframe id="interactApp5cf501784151a70014a87dc6" width="100%" height="100%" style="border:none;max-width:100%;margin:0;" allowTransparency="true" frameborder="0" src="https://quiz.tryinteract.com/#/5cf501784151a70014a87dc6/q/1?method=iframe"></iframe></div></div> ## 도서구매 <a href="http://www.yes24.com/Product/Goods/104740689"><img src="http://image.yes24.com/goods/104740689/XL" width="50%" /></a>

Challenge

개념 실습! 학습 내용을 진짜 내 것으로 만들기!