* ��터 �닉(Data Hiding)
ë�°ì�´í„° ì�€ë‹‰ì�´ëž€ 모듈ì�´ 그것ì�´ 갖는 기능들ì�„ 명세한 ì�¸í„°íŽ˜ì�´ìФ(interface)를 통해서만 ì ‘ê·¼ë�˜ê³ , ê·¸ 기능ì�„ 구현하는 방법ì�€ 다른 모듈로부터 ì�€ë‹‰ë�˜ë�„ë¡� 하는 것ì�„ ë§�한다. 캡ìŠ�í™”ë�œ ê°�ì²´ì�˜ 외부 ì�¸í„°íŽ˜ì�´ìŠ¤ë¥¼ 엄밀히 ì •ì�˜í•¨ìœ¼ë¡œì�¨ ë�…립ì �으로 작성ë�œ 모듈간ì�˜ ìƒ�호 종ì†�성ì�„ 극소화하여 캡ìŠ�í™”ë�œ ê°�체는 외부 ì�¸í„°íŽ˜ì�´ìŠ¤ë§Œì�„ 통하여 ì ‘ê·¼ë� 수 있ë�„ë¡� 한다면, 세부ì �ì�¸ 구현 ìƒ�세 사í•ì—� 대해서는 ê°�ì²´ë‚´ì—� ì�€ë‹‰ì‹œí‚¬ 수 있다. ë˜�한 캡ìŠ�í™”ë�œ ê°�체는 ê°�ì²´ 구현내ì—ì�„ 변경, 혹ì�€ í–¥ìƒ�시킬 때 ì�´ ê°�체를 사용하는 타 ê°�체들ì�„ 변경하거나 다시 컴파ì�¼í•˜ì§€ 않ë�„ë¡� í• ìˆ˜ 있다. ë˜� 모듈ì�˜ ë‚´ë¶€ 구현 사í•들ì�´ 외부ì�˜ ì ‘ê·¼ìœ¼ë¡œë¶€í„° 보호ë� 수 있ì�Œìœ¼ë¡œ, ê·¸ ê°�ì²´ì�˜ ì •ë‹¹ì„±ì�„ ë³´ì¦�í• ìˆ˜ 있으며, 오류가 ë°œìƒ�ë�˜ì—ˆì�„ 경우ì—� 오류는 한 모듈내로 êµì§€í™”ë� 수 있다.
* 캡�화(Encapsulation)
우리가 í�”히 다루는 ê°�ê°�ì�˜ ê°�체들ì�€ 서로ì�˜ ê´€ë ¨ë�˜ ì˜�ì—ì�„ ì‚¬ìš©í• ìˆ˜ 있는 부분과 없는 부분ì�´ 있다. ì�´ê²ƒì�€ 별ë�„로 ì ‘ê·¼ì�´ 가능한 ì˜�ì—ê³¼ 불가능한 ì˜�ì—으로 나누어서 관리하기 때문ì�´ë‹¤. ì�´ê²ƒì�„ 바로 캡ìŠ�í™”ë�¼ 한다. ê°ìŠ�화는 바로 ì ‘ê·¼ 가능한 코드와 불가능한 코드로 나눔으로 ì�¸í•´ì„œ ë�°ì�´í„°ë‚˜ 특별한 ì˜�ì—ì�„ 보호하거나 ê°�추는 ì—활ì�„ í• ìˆ˜ 있다. 때문ì—� 필요한 경우 ë�°ì�´í„°ì�˜ ì ‘ê·¼ 필드를 ì œí•œí•¨ìœ¼ë¡œì„œ ë�°ì�´í„°ë¥¼ 보호하는 결과를 ì–»ì�„ 수 있다.
 
* ��성(Inheritance)
 
* ��성(Inheritance)
ìƒ�ì†�ì�´ëž€, 기존ì—� 만들어 놓ì�€ ê°�체들로 부터 ëª¨ë“ ë³€ìˆ˜ì™€ 메소드를 ë¬¼ë ¤ 받아 새로운 ê°�체를 만들 수 있다는 것ì�„ 뜻한다. 즉, 새프로그램ì�„ 만들 때 기존ì�˜ ìž�료를 ì�´ìš©í•´(ìƒ�ì†�받아) 새ë¡ê²Œ ì •ì�˜í•˜ì—¬ 사용한면 ë�œë‹¤ëŠ” 것ì�´ë‹¤. ì�´ë¡œì�¸í•´ 부수ì �으로 프로그래ë°�ì�˜ ë…¸ë ¥ì�´ ì¤„ê³ ì‹œê°„ 단축ë�˜ë©° ê·¸ë¦¬ê³ OOPì�˜ 가장 중요한 재사용성(Reusability) ì–»ì�„ 수 있다. ë�¸íŒŒì�´ëŠ” TObjectë�¼ëŠ” 최ìƒ�위 ê°�체로부터 ìƒ�ì†�시켜 단계ì �으로 하위 ê°�체들ì�„ ìƒ�성해 만들어진 구조를 ì§€ë‹ˆê³ ìžˆë‹¤.
* 추�화(Abstraction)
ì¶”ìƒ�화란, ê°�ì²´ê°€ ìž�ì‹ ì�˜ ì •ë³´ë¥¼ 안ì—� ê°�ì¶”ê³ ìžˆìœ¼ë©´ì„œ 외부ì—� 구체ì �ì�¸ 것ì�´ 아닌 ì¶”ìƒ�ì �ì�¸ 내용만ì�„ ì•Œë ¤ì£¼ëŠ” 것ì�„ ë§�한다. 때문ì—� ì¶”ìƒ�화란 ì •ë³´ì�˜ ì�€ë‹‰(Information Hiding)ì�´ë�¼ê³ ë�„ 한다.
* 다형성(Polymorphism)
ê°�체지향 프로그래ë°�ì—�서 다형성ì�´ëž€ 근본ì �으로 ìƒ�ì†�ì—� 뿌리를 ë‘�ê³ ìžˆë‹¤. ì¡°ìƒ� í�´ëž˜ìŠ¤ë¡œë¶€í„° ìƒ�ì†�ì�„ 받아 새로운 ê°�체들ì�´ 파ìƒ�ë�˜ì–´ ìƒ�성ë�œë‹¤. ì�´ë•Œ 만약 새ê°�체들ì�´ 모ë‘� ì¡°ìƒ� í�´ëž˜ìŠ¤ì™€ 모ë‘� ë�™ì�¼í•œ ê°’ë§Œ ê°€ì§€ê³ ìžˆë‹¤ë©´ 새로운 ê°�체로서 ì�˜ë¯¸ê°€ 없다. 왜ëƒ�ë©´ 그것ì�„ 만드는 ì�´ìœ 는 무언가 다른 ì—í• ì�„ 하기 위해 ìƒ�성하는 것ì�´ê¸° 때문ì�´ë‹¤. 그래서 다형성ì�´ëž€ ì¡°ìƒ�ì�´ë�˜ëŠ” ê°�체로부터 ìƒ�ì†�ì�„ 받아 다른 결과물ì�„ 산출해 낼때 다형성ì�´ë�¼ëŠ” ì�˜ë¯¸ë¥¼ ë¶€ì—¬í• ìˆ˜ 있게 ë�œë‹¤.










