객체지향의 4대 특성? 캡슐화, 상속, 추상화, 다형성이 객체 지향의 4대 특성이라는 것은 개발자라면 한번 쯤은 들어본 내용 입니다. 4대 특성에 대한 내용은 다른 포스팅에 정리 해두었습니다.☞ 객체의 캡슐화(Encapsulation), 접근제어자☞ 객체의 추상화 (Abstraction)☞ 객체의 다형성(Polymorphism) 하지만 개인적으로 각각의 내용을 공부 하고 나서도 꼭 찝찝한 부분이 있었습니다. '이게 객체지향의 특성인데.. 뭐 어떻다는 거지?' 뭔가 와닿지 않고 별개의 개념을 말로써만 이어 붙였다는 기분이 들었습니다. 그리고 4대 특성에 대해 쉽게 이해할 수 없을지를 고민해 봤고 그 결과 한가지 키워드를 붙이면 아주 자연스럽다는 것을 알게 되었습니다. 바로 '~ 할 수 있다' 라는 키워드 ..
객체의 캡슐화 TV라는 객체를 생각해봅시다. 사용자는 전원을 키고, 채널과 음량을 조절 할 줄 안다면 TV를 문제 없이 사용할 수 있습니다. TV의 내부적인 모습이나 원리는 알 필요가 없습니다. 하지만 사용자가 TV 객체에 대한 충분한 이해 없이 중요한 부품들을 건들이게 된다면, TV는 개발자가 의도한 대로 혹은 사용자가 예상한대로 작동하지 않을 확률이 매우 높습니다. 이러한 이유로 사용자가 객체에 접근할 수 있는 영역을 제한하는 것을 객체의 캡슐화(encapsulation)라고 합니다. 캡슐화의 장점사용자가 불필요한 부분을 접근하지 못하게 하여, 객체의 오용을 방지 할 수 있습니다. (항상 개발자와 사용자가 다를 수 있음을 기억해야 합니다.)객체의 내부가 바뀌어도 그 객체의 사용방법이 바뀌지 않습니다...