프로그래밍 언어론 · 11강

객체지향 프로그래밍 지원

클래스를 왜 물려받게 했는지, 같은 호출문이 어떻게 객체마다 다른 메서드에 닿는지, 언어마다 무엇을 다르게 골랐는지, 그리고 메모리에서 어떻게 구현되는지를 봅니다. 프로그래밍을 한 번쯤 해 본 사람을 위해 9편으로 나눠 따라갑니다.

  1. 1왜 물려받게 했을까?추상 자료형의 한계, 상속, 클래스 계층, 세 특성
  2. 2물려받은 것을 어떻게 고칠까?상속의 용어, 메시지, 오버라이딩, 접근 제어
  3. 3같은 호출이 왜 다르게 움직일까?다형 변수, 동적 바인딩, 추상 클래스
  4. 4언어 설계자는 무엇을 정해야 할까?서브타입, 다중 상속, 객체 슬라이싱, 해제, 중첩 클래스, 초기화
  5. 5모든 것이 객체라면?객체의 배타성, 스몰토크, 루비
  6. 6C++는 무엇을 프로그래머에게 맡겼을까?접근 제어, 상속 방식, 다중 상속, virtual
  7. 7자바와 C#은 무엇을 다르게 골랐을까?인터페이스, final, 구조체, virtual과 override
  8. 8객체는 메모리에서 어떻게 생겼을까?클래스 인스턴스 레코드, 가상 메서드 테이블
  9. 9프로그램이 자기 자신을 들여다볼 수 있을까?리플렉션, 11강 정리

내용과 예제는 Robert W. Sebesta의 《Concepts of Programming Languages》 12판 12장을 따랐습니다.