캡슐화 편집하기

경고: 로그인하지 않았습니다. 편집을 하면 IP 주소가 공개되게 됩니다. 로그인하거나 계정을 생성하면 편집자가 사용자 이름으로 기록되고, 다른 장점도 있습니다.

편집을 취소할 수 있습니다. 이 편집을 되돌리려면 아래의 바뀐 내용을 확인한 후 게시해주세요.

최신판 당신의 편집
1번째 줄: 1번째 줄:
==개요==
==개요==
;encapsulation  
;encapsulation  
;캡슐화, 인캡슐레이션
;캡슐화
* 복잡한 내부 구조를 숨기는 것
*내부는 숨기고 인터페이스만 제공
* 내부는 숨기고 인터페이스만 제공<ref>정보 은닉(information hiding)</ref>하는 것
*[[인스턴스 변수]]를 private으로 선언
* 어떻게 동작하는지에 대한 세부사항을 알 필요 없이 간단히 사용할 수 있도록 소프트웨어를 설계, 작성, 기술하는 것
:외부에서 접근할 필요가 있을 때는 게터, 세터 메소드를 이용하도록
* 메소드 혹은 클래스의 구현 상세를 숨겨야 한다.
*장점: 외부의 간섭을 차단. 유지보수가 용이함([[모듈성]])<ref>어떤 모듈이 다른 모듈의 내부를 직접 간섭하도록 만든 경우, 하나의 모듈을 변경할 때 영향받는 모듈이 많아져서 변경이 어려워진다.</ref>
* [[인스턴스 변수]]를 private으로 선언한다.
:외부에서 접근할 필요가 있을 때는 getter, setter 메소드를 이용하도록 한다.
* 모든 메소드/변수/클래스를 private으로 시작한다.
:상속이 필요한 경우에만 protected로 변경한다.
:처음부터 public으로 만들면 나중에 변경하기 어렵다. (누가 사용하고 있는지 알기 어렵기 때문에)
* 장점: 외부의 간섭을 차단. 유지보수가 용이함([[모듈성]])<ref>어떤 모듈이 다른 모듈의 내부를 직접 간섭하도록 만든 경우, 하나의 모듈을 변경할 때 영향받는 모듈이 많아져서 변경이 어려워진다.</ref>


==같이 보기==
==같이 보기==
{{z컬럼3|
*[[객체지향]]
* [[캡슐]]
*[[메소드]]
* [[위임]]
*[[모듈성]]
* [[상속]]
*[[위임]]
* [[메소드]]
*[[느슨한 결합]]
* [[모듈성]]
*[[상속]]
* [[추상화]]
* [[객체지향]]
* [[느슨한 결합]]
* [[파사드 패턴]]
* [[캡슐화 스멜]]
}}


==참고==
==주석==
* {{위키백과|캡슐화}}
<references/>
* {{영어위키백과|Encapsulation (computer programming)}}
 
* http://www.terms.co.kr/encapsulation.htm
==참고 자료==
*http://www.terms.co.kr/encapsulation.htm
*http://en.wikipedia.org/wiki/Encapsulation_(object-oriented_programming)


[[분류: 캡슐화]]
[[분류: 객체지향]]
[[분류: 객체지향]]

제타위키에서의 모든 기여는 크리에이티브 커먼즈 저작자표시-동일조건변경허락 3.0 라이선스로 배포된다는 점을 유의해 주세요(자세한 내용에 대해서는 제타위키:저작권 문서를 읽어주세요). 만약 여기에 동의하지 않는다면 문서를 저장하지 말아 주세요.
또한, 직접 작성했거나 퍼블릭 도메인과 같은 자유 문서에서 가져왔다는 것을 보증해야 합니다. 저작권이 있는 내용을 허가 없이 저장하지 마세요!

취소 편집 도움말 (새 창에서 열림)