목차
제1장 개요
1.1 예제 = 3
1.2 객체 지향 소프트웨어의 개발 = 4
1.2.1 개발 팀을 조직하고 이끌기 = 4
1.2.2 혼자서 개발하기 = 5
1.2.3 사나운 문제 = 7
1.2.4 극단 프로그래밍 = 10
1.2.5 MATLA$$B^◆U00AE◆$$과 객체 지향 프로그래밍 = 13
1.3 속성, 거동, 객체, 그리고 클래스 = 15
1.3.1 객체 지향 사고방식 = 15
1.3.2 객체 지향 설계 = 17
1.3.3 왜 객체를 써야 할까? = 18
1.3.4 소프트웨어의 질 = 20
1.3.4.1 신뢰성 = 20
1.3.4.2 재사용성 = 22
1.3.4.3 확장성 = 23
1.4 요약 = 25
제1부 8개의 기본 요소
제2장 MATLA$$B^◆U00AE◆$$의 요구조건
2.1 변수, 데이터 형, 클래스, 그리고 객체 = 29
2.2 MATLA$$B^◆U00AE◆$$ 클래스는 무엇인가? = 32
2.2.1 예제: 클래스의 요구 조건 = 33
2.2.1.1 클래스 디렉토리 = 33
2.2.1.2 생성자 = 34
2.2.1.3 프로그램 실습 = 37
2.3 요약 = 40
2.4 질문과 문제 = 41
제3장 멤버 변수와 멤버 함수
3.1 멤버 = 46
3.2 획득자와 지정자 = 47
3.2.1 캡슐화의 간단한 조사 = 49
3.2.1.1 cShape의 변수 = 50
3.2.2 cShape의 멤버 = 52
3.2.2.1 cShape의 비밀 멤버 변수 = 52
3.2.2.2 cShape의 공개 인터페이스 = 53
3.2.3 함수의 탐색 우선순위 = 56
3.2.4 예제 코드: 획득자와 수정자 = 57
3.2.4.1 생성자 = 58
3.2.4.2 획득자 = 58
3.2.4.3 수정자 = 59
3.2.4.4 획득자와 지정자의 결합 = 60
3.2.4.5 멤버 함수 = 61
3.2.5 표준화 = 62
3.3 프로그램 실습 = 63
3.4 요약 = 65
3.5 질문과 문제 = 65
제4장 객체의 사용 규칙 바꾸기
4.1 특별한 획득자와 지정자 = 67
4.1.1 이중등록의 간단한 조사 = 68
4.1.1.1 superiorto와 inferiorto = 70
4.1.1.2 내장형 함수 = 71
4.1.2 연산자 subsref와 subsasgn의 이중등록 = 72
4.1.2.1 점-참조의 기본 사용법 = 75
4.1.2.2 subsref을 이용한 첫 번째 점-참조 = 76
4.1.2.3 subsref을 이용한 두 번째 점-참조: 공개 및 비밀 변수 구분하기 = 78
4.1.2.4 subsref을 이용한 세 번째 점-참조: 공개 및 비밀 변수의 1:1 짝짓기 탈피 하기 = 79
4.1.2.5 subsref을 이용한 네 번째 점-참조: 다중 첨자 수준 = 80
4.1.2.6 subsref을 이용한 다섯 번째 점-참조: 연산자의 변칙 변환 = 84
4.1.2.7 subsasgn을 이용한 점-참조 = 86
4.1.2.8 배열-참조의 기본 사용법 = 89
4.1.2.9 subsref을 이용한 배열-참조 = 91
4.1.2.10 subsasgn을 이용한 배열-참조 = 92
4.1.2.11 세포-참조의 기본 사용법 = 95
4.1.3 subsref.m의 완성 코드 = 96
4.1.4 subsasgn.m의 완성 코드 = 97
4.1.5 연산자 mtimes의 이중등록 = 99
4.2 프로그램 실습 = 100
4.2.1 subsasgn 실습 = 101
4.2.2 subsref 실습 = 103
4.3 요약 = 105
4.4 질문과 문제 = 107
제5장 객체의 정보 나타내기
5.1 객체 표시하기 = 109
5.1.1 표시 대상 = 110
5.1.2 구조체 형식으로 나타내기 = 112
5.1.3 공개 변수 나타내기 = 114
5.1.3.1 display.m의 첫 번째 코드 = 114
5.1.3.2 display.m의 두 번째 코드 = 115
5.2 개발자 보기 = 117
5.2.1 개발자 보기를 지원하는 display.m = 119
5.3 프로그램 실습 = 122
5.4 요약 = 124
5.5 질문과 문제 = 125
제6장 fieldnames.m
6.1 fieldnames의 기본 = 127
6.2 fieldnames의 코드 = 128
6.3 프로그램 실습 = 130
6.4 요약 = 131
6.5 질문과 문제 = 131
제7장 struct.m
7.1 struct의 기본 = 133
7.2 struct의 코드 = 135
7.3 프로그램 실습 = 136
7.4 요약 = 137
7.5 질문과 문제 = 138
제8장 get.m과 set.m
8.1 멤버 함수 get과 set = 139
8.1.1 개발자의 get과 set = 140
8.1.2 사용자의 get과 set = 141
8.1.3 탭 완성 기능 = 143
8.2 get과 set의 코드 개발 = 143
8.2.1 get과 set 이식하기 = 143
8.2.2 get.m의 첫 번째 코드 = 146
8.2.3 set.m의 첫 번째 코드 = 149
8.3 프로그램 실습 = 154
8.4 요약 = 156
8.5 질문과 문제 = 157
제9장 get,set,fieldnames 및 struct를 이용하여 프로그램 간단히 만들기
9.1 subsref.m의 새로운 코드 = 160
9.2 subsasgn.m의 새로운 코드 = 162
9.3 display.m의 새로운 코드 = 164
9.4 프로그램 실습 = 166
9.5 요약 = 169
9.6 질문과 문제 = 170
제10장 형상 그리기
10.1 그리기 준비와 작성 = 171
10.1.1 코드의 이식 = 172
10.1.1.1 생성자 수정하기 = 174
10.1.1.2 fieldnames 수정하기 = 175
10.1.1.3 get 수정하기 = 176
10.1.1.4 set 수정하기 = 178
10.1.1.5 mtimes 수정하기 = 182
10.1.1.6 reset 수정하기 = 183
10.1.1.7 함수 draw를 멤버로 첨가하기 = 183
10.2 프로그램 실습 = 185
10.3 요약 = 188
10.4 질문과 문제 = 189
제2부 클래스의 계층쌓기
제11장 생성자 다시 정의하기
11.1 초기값의 지정 = 193
11.1.1 비밀 멤버 함수 = 195
11.2 생성자 일반화 하기 = 196
11.2.1 생성자의 도움 함수/private/ctor_ini.m = 199
11.2.2 생성자의 도움 함수/private/ctor_1.m = 200
11.3 프로그램 실습 = 201
11.4 요약 = 205
11.5 질문과 문제 = 208
제12장 계승을 이용한 클래스
12.1 단일 계승 = 213
12.1.1 생성자 = 213
12.1.2 그 밖의 표준 멤버 함수 = 217
12.1.2.1 자식 클래스의 fieldnames = 222
12.1.2.2 자식 클래스의 get = 224
12.1.2.3 자식 클래스의 set = 227
12.1.3 그 밖의 비표준 멤버 함수 = 230
12.1.3.1 draw.m = 231
12.1.3.2 mtimes.m = 232
12.1.3.3 reset.m = 232
12.2 프로그램 실습 = 233
12.3 요약 = 238
12.4 질문과 문제 = 238
제13장 객체의 배열과계승
13.1 cShape는 언제 cShape가 아닐까? = 239
13.1.1 subsasgn의 수정 = 240
13.1.2 vertcat와 horzcat = 241
13.1.3 프로그램 실습 = 243
13.2 요약 = 248
13.3 질문과 문제 = 248
제14장 자식 클래스의 여러 멤버들
14.1 함수 다시 정의하기 = 249
14.1.1 /@cStar/private/ctor_ini.m = 250
14.1.2 /@cStar/fieldnames.m = 251
14.1.3 /@cStar/get.m = 252
14.1.4 /@cStar/set.m = 253
14.1.5 /@cStar/draw.m = 254
14.2 프로그램 실습 = 255
14.3 요약 = 256
14.4 질문과 문제 = 258
제15장 합성을 이용한 클래스 계층
15.1 합성 = 260
15.1.1 클래스 cLineStyle = 260
15.1.1.1 cLineStyle의 /private/ctor_ini = 262
15.1.1.2 cLineStyle의 fieldnames = 263
15.1.1.3 cLineStyle의 get = 264
15.1.1.4 cLineStyle의 set = 265
15.1.1.5 cLineStyle의 /private/ctor_2 = 267
15.1.2 1차 클래스(cShape)와 2차 클래스(cLineStyle) 사용하기 = 268
15.1.2.1 cShape의 ctor_ini.m 바꾸기 = 269
15.1.2.2 cShape의 fieldnames.m에 LineWeigh 첨가하기 = 270
15.1.2.3 cShape의 get.m 바꾸기 = 271
15.1.2.4 cShape의 set.m 바꾸기 = 272
15.1.2.5 cShape의 draw.m 바꾸기 = 274
15.1.2.6 cShape의 다른 멤버 함수 고치기 = 275
15.2 프로그램 실습 = 275
15.3 요약 = 276
15.4 질문과 문제 = 280
제16장 획득과 지정의 일반적인 도움 함수
16.1 도움 함수의 전략 = 281
16.1.1 직접-연결 공개 변수 = 282
16.1.1.1 get과 subsref = 283
16.1.1.2 set과 subsasgn = 284
16.1.2 get과 set의 도움 함수 = 285
16.1.2.1 도움 함수와 get, set = 285
16.1.2.2 get.m의 최종 버전 = 287
16.1.2.3 set.m의 최종 버전 = 292
16.1.2.4 Color_Helper 도움 함수 = 296
16.1.2.5 다른 클래스와 멤버 함수 = 298
16.2 프로그램 실습 = 299
16.3 요약 = 300
16.4 질문과 문제 = 300
제17장 클래스 마법사
17.1 파일의 연결성 = 302
17.2 데이터 입력 대화창 = 304
17.2.1 기본 대화창 = 305
17.2.1.1 머리말 정보 대화창 = 308
17.2.1.2 부모 클래스 대화창 = 310
17.2.1.3 비밀 변수 대화창 = 312
17.2.1.4 잠복 변수 대화창 = 313
17.2.1.5 공개 변수 대화창 = 315
17.2.1.6 생성자 대화창 = 318
17.2.1.7 추가 대화창 = 320
17.2.1.8 정적 변수 대화창 = 320
17.2.1.9 비밀 함수 대화창 = 322
17.2.1.10 공개 함수 대화창 = 323
17.2.1.11 File 메뉴 = 325
17.2.1.12 Data 메뉴 = 327
17.2.1.13 실행 버튼 = 328
17.3 요약 = 329
17.4 질문과 문제 = 330
제18장 클래스 마법사의 사용 예
18.1 cLineStyle과 클래스 마법사 = 334
18.1.1 cLineStyle의 머리말 정보 = 335
18.1.2 cLineStyle의 비밀 변수 = 336
18.1.3 cLineStyle의 공개 변수 = 339
18.1.4 cLineStyle의 생성자 함수 = 342
18.1.5 cLineStyle의 데이터 사전 = 344
18.1.6 cLineStyle의 파일 생성 = 345
18.1.7 cLineStyle의 획득 및 지정 도움 함수 = 346
18.2 cShape와 클래스 마법사 = 349
18.2.1 cShape의 머리말 정보 = 349
18.2.2 cShape의 비밀 변수 = 349
18.2.3 cShape의 잠복 변수 = 352
18.2.4 cShape의 공개 변수 = 352
18.2.5 cShape의 생성자 함수 = 354
18.2.6 cShape의 공개 함수 = 355
18.2.7 cShape의 데이터 사전 = 356
18.2.8 cShape의 파일 생성 = 357
18.3 cStar와 클래스 마법사 = 358
18.3.1 cStar의 부모 클래스 = 358
18.3.2 cStar의 여러 입력 데이터 = 360
18.4 cDiamond와 클래스 마법사 = 362
18.5 프로그램 실습 = 363
18.6 요약 = 366
18.7 질문과 문제 = 367
제3장 클래스의 고급기법
제19장 합성과 컨테이너 클래스
19.1 컨테이너 이해하기 = 371
19.2 컨테이너 이식하기 = 373
19.2.1 기본 8-요소 함수의 수정 = 373
19.2.1.1 fieldnames의 컨테이너 수정 = 376
19.2.1.2 subsref의 컨테이너 수정 = 377
19.2.1.3 subsasgn의 컨테이너 수정 = 378
19.2.1.4 get의 컨테이너 수정 = 381
19.2.1.5 set의 컨테이너 수정 = 384
19.2.2 내장 함수의 수정 = 385
19.2.2.1 end의 컨테이너 수정 = 386
19.2.2.2 cat과 horzcat, vertcat의 컨테이너 수정 = 386
19.2.2.3 length와 ndims, reshape, size의 컨테이너 수정 = 389
19.2.3 cShapeArray와 numel = 390
19.2.3.1 num2cell와 mat2cell의 컨테이너 수정 = 393
19.2.4 cShape 객체에 전용인 컨테이너 함수 = 393
19.2.4.1 cShapeArray의 times와 mtimes 함수 = 394
19.2.4.2 cShapeArray의 draw 함수 = 396
19.2.4.3 cShapeArray의 reset 함수 = 397
19.3 프로그램 실습 = 398
19.4 요약 = 401
19.5 질문과 문제 = 401
제20장 정적 멤버 데이터와 단독객체
20.1 정적 데이터 포함하기 = 403
20.1.1 정적 데이터를 기본 8-요소 함수와 연결하기 = 405
20.1.1.1 정적 변수와 생성자 = 406
20.1.1.2 get과 set에서 정적 변수 = 406
20.1.1.3 display에서 정적 변수 = 408
20.1.2 loadobj와 saveobj의 이중등록 = 409
20.1.3 횟수 세기 = 410
20.2 단독 객체 = 411
20.3 프로그램 실습 = 412
20.4 요약 = 415
20.5 질문과 문제 = 415
제21장 참조로-보내기 에뮬레이션
21.1 등식 없는 대입문 = 417
21.2 참조로-보내기 함수 = 420
21.3 참조로-보내기 함수: draw = 420
21.4 참조로-보내기 멤버 변수: view = 422
21.4.1 참조로-보내기: 도움 함수, get, 그리고 set = 423
21.4.1.1 도움 함수의 참조로-보내기 코드 = 423
21.4.1.2 get의 참조로-보내기 코드 = 425
21.4.1.3 subsref의 참조로-보내기 코드 = 428
21.4.2 참조로-보내기: 기본 8-요소 이외의 함수 = 429
21.5 프로그램 실습 = 429
21.6 요약 = 432
21.7 질문과 문제 = 433
찾아보기 = 435