20장. 객체지향 프로그래밍 01_ 객체지향 프로그래밍의 시작
객체지향 프로그래밍의 비유(1) 객체지향 프로그래밍은 부품을 모아서 조립하는 과정이 비유할 수 있다. 여기서 객체를 부품이라고 볼 수 있다. [20-1]
객체지향 프로그래밍의 비유(2) 부품별로 분업할 수 있는 것처럼, 객체를 만들 때도 자신의 객체에 대해서만 노력을 집중할 수 있다. 제가 발생한 경우에 해당 부품만 교체하면 되듯이, 객체에 문제가 있는 경우에는 해당 객체만 고치면 된다. [20-2] [20-3]
객체지향 프로그래밍의 비유(3) 하나의 부품을 여러 제품에 사용할 수 있는 것처럼, 잘 만들어 놓은 객체는 다음 번 프로젝트에도 재사용할 수 있다. 부품들의 규격이 정해져 있어야 조립이 가능한 것처럼, 객체간의 연결 부분도 잘 약속되어 있어야 한다. [20-4] [20-5]
클래스(Classes)와 객체(Objects) (1) 클래스와 객체는 ‘붕어빵 틀’과 ‘붕어빵’의 관계다. 혹은 ‘제품의 설계도’와 ‘제품’의 관계라고 말할 수도 있다. [20-6]
클래스(Classes)와 객체(Objects) (2) 문법적인 측면에서 바라본 클래스와 객체 [20-7]
정보은닉(Data Hiding) 정보은닉이란 객체간에 약속되지 않은 부분을 숨기는 것을 말한다. 예) 약속되지 않은 여분의 8바이트를 사용하는 것은 정보은닉에 어긋나는 일이다. 약속된 부분과 약속되지 않은 부분 [20-8] [20-9]
캡슐화(Encapsulation) 캡슐화란 약속되지 않은 부분은 감싸서 숨겨버리는 것을 말한다. 캡슐화를 통해서 정보은닉을 달성할 수 있다. [20-10]
상속(Inheritance) 상속이란 기존 클래스를 토대로 새로운 클래스를 만드는 방법을 말한다. 예) 상속 모형 예) 붕어빵 틀을 상속받아서 수염 달린 붕어빵 틀을 만들기 [20-11] [20-12]
다형성(Polymorphism)(1) 다형성이란 서로 다른 객체를 동일한 방식으로 명령을 내릴 수 있는 성질을 말한다. 이 때 서로 다른 객체들은 같은 명령을 받지만 제각기 다른 방식으로 명령을 수행할 수 있다. 예) 백열들과 삼파장 램프는 동일한 소켓에 끼워서 사용할 수 있다. [20-13]
다형성 (2) 문서 저장 객체와 HTML 저장 객체의 예 [20-14] [20-15]