CHAPTER 1 객체지향 개념 소개 1
기본 개념 2
객체와 레거시 시스템 3
객체지향 프로그래밍과 절차적 프로그래밍 4
절차적 개발에서 객체지향적 개발로 옮겨 타기 9
객체란 정확히 무엇일까? 10
클래스란 정확히 무엇을 일컫는 말인가? 16
시각화 도구로 클래스 다이어그램 사용하기 20
캡슐화 및 데이터 은닉 20
상속 25
다형성 29
합성 33
결론 35
CHAPTER 2 객체라는 관점에서 생각하는 방법 37
인터페이스와 구현부의 차이점 이해 39
인터페이스 설계 시 추상적으로 생각해 보기 47
가능한 한 사용자 인터페이스를 적게 제공하기 49
결론 54
참고 문헌 54
CHAPTER 3 그 밖의 객체지향 개념들 55
생성자에 관하여 55
오류 처리 64
범위의 중요성 69
연산자 오버로딩 75
다중 상속 77
객체 연산 78
결론 80
참고문헌 80
CHAPTER 4 클래스 해부하기 81
클래스의 이름 82
속성 84
생성자 86
접근자 88
공개 인터페이스 메서드 91
비공개 구현부 메서드 92
결론 93
참고문헌 93
CHAPTER 5 클래스 설계 지침 95
현실 세계 시스템 모델링 95
공개 인터페이스 식별 97
튼튼한 생성자나 소멸자가 되게 설계하기 99
클래스에 대한 오류 처리 설계 100
재사용을 고려한 설계 102
확장성을 고려한 설계 102
유지보수를 고려한 설계 106
객체 지속성 사용 110
결론 111
참고문헌 112
CHAPTER 6 객체를 사용해 설계하기 113
설계 지침 114
객체 래퍼 121
결론 128
참고문헌 129
CHAPTER 7 상속과 합성에 익숙해지기 131
객체 재사용 132
상속 133
캡슐화가 객체지향의 기본이 되는 이유 143
결론 153
참고문헌 154
CHAPTER 8 프레임워크 및 재사용: 인터페이스와 추상 클래스를 사용해 설계하기 155
코드: 재사용할 것인가, 사용