목차
1부 최고만 교수의 Java 강의
제1장 Java 프로그래밍의 시작 = 18
1.1 Java를 배우려면 = 18
1.2 예제 Java 프로그램 = 23
1.3 Java 프로그램의 구조 = 28
1.4 Java의 실행환경 = 30
연습문제 = 34
제2장 Java 프로그램의 구성체계 = 35
2.1 2개의 예제 프로그램 = 36
2.2 Java 프로그램의 구성요소와 구성도 = 42
연습문제 = 52
제3장 Java의 구성 레벨 1, 2, 3 : 문자, 토큰, 값 도출 = 53
3.1 문자 레벨 = 54
3.2 토큰 레벨 = 54
3.2.1 분리자 = 54
3.2.2 주석 = 54
3.2.3 키워드 = 55
3.2.4 상수 = 56
3.2.5 변수 = 59
3.2.6 연산자 = 61
3.2.7 메소드 이름, 클래스 이름, 레이블 = 62
3.2.8 식별자 = 62
3.3 값 도출 레벨 = 64
3.3.1 연산 = 64
3.3.2 객체 생성 = 69
3.3.3 멤버변수 참조 = 71
3.3.4 메소드 호출 = 71
3.3.5 배열원소 참조 = 72
3.3.6 프로그램에서의 값 도출 레벨 구성요소 = 73
연습문제 = 76
제4장 Java의 구성레벨 4, 5 : 수식, 문장 = 79
4.1 수식 = 79
4.1.1 수식을 구성하는 규칙 = 80
4.1.2 수식이 계산되는 순서 = 81
4.1.3 프로그램에서 자주 사용되는 수식 = 84
4.1.4 명시적 타입변환 : 캐스트 = 85
4.2 문장 = 86
4.2.1 변수 선언문 = 87
4.2.2 단순문 = 89
연습문제 = 92
제5장 Java의 구성레벨 6 : 복합문 = 95
5.1 if 문 = 96
5.2 switch 문 = 101
5.3 for 문 = 105
5.4 while 문과 do-while 문 = 108
5.5 반복문의 제어 : break 문과 continue 문 = 109
5.6 반복에 대한 이해 = 112
연습문제 = 118
제6장 자바의 구성레벨 7 : 메소드 = 121
6.1 메소드의 선언 및 호출 = 122
6.2 메소드의 기능 = 123
6.3 메소드의 매개변수 = 127
6.4 호출된 메소드에서 호출한 메소드로의 값 전달 = 132
6.5 메소드의 작성과정 = 137
6.6 CGM.input 클래스의 getint() 메소드 = 140
6.7 메소드의 또 다른 얼굴 : 일반적 문제풀이 = 142
6.7.1 시계 바늘의 각도 구하기 = 144
6.7.2 날짜의 요일 구하기 = 148
6.8 Java 프로그램 작성법 = 153
연습문제 = 157
제7장 Java의 구성레벨 8:클래스 = 159
7.1 Java 클래스 선언 = 159
7.1.1 클래스 수식어 = 160
7.1.2 클래스 이름 = 161
7.1.3 클래스 확장부 = 161
7.1.4 멤버변수 선언부 = 161
7.1.5 객체생성자 선언부 = 162
7.1.6 메소드 선언부 = 162
7.1.7 스태틱 초기화 = 163
7.1.8 클래스 타입과 객체 참조변수 = 163
7.2 Java 변수의 분류 = 164
7.2.1 변수의 선언위치에 따른 분류 : 지역변수, 형식 매개변수, 멤버변수 = 165
7.2.2 저장되는 값의 종류에 따른 분류 : 단순변수와 참조변수 = 168
7.2.3 기억장소 할당 시점에 따른 분류 : 정적 변수와 동적 변수 = 170
7.2.4 변수 값의 변경여부에 따른 분류 : final 변수와 non-final 변수 = 171
7.2.5. 멤버변수 = 172
7.2.6 멤버변수의 참조범위에 따른 분류 : public, private, protected, package 멤버변수 = 172
7.2.7 클래스 멤버변수와 객체 멤버변수 = 173
7.3 메소드의 분류 = 174
7.3.1 호출범위에 따른 분류 : public, private, protected, package 메소드 = 175
7.3.2 메소드 수신자에 의한 분류 : 클래스 메소드와 객체 메소드 = 176
7.3.3 오버라이딩 여부에 의한 분류 : final 메소드와 non-final 메소드 = 177
7.3.4 메소드 구현 여부에 의한 분류 : abstract 메소드와 non-abstract 메소드 = 178
7.4 클래스의 기능 = 179
7.4.1 클래스의 객체 정의 기능 = 179
7.4.2 클래스의 객체 생성 기능과 객체 생성자 = 180
7.4.3 클래스의 타입 기능과 객체 참조변수 = 189
7.4.4 클래스 멤버변수와 메소드를 갖는 객체 기능 = 191
7.5 정렬 프로그램의 작성 = 194
7.5.1 선택정렬 = 194
7.5.2 C_LikeSort 클래스를 이용한 선택 정렬 = 199
7.5.3 객체 메소드를 이용한 선택 정렬 = 199
연습문제 = 204
제8장 Java 프로그램 작성 게임 = 207
제9장 Java의 하위 클래스 = 217
9.1 하위 클래스 및 상속 = 217
9.2 객체 참조변수와 하위 클래스 객체 참조 = 223
9.3 메소드 오버라이딩과 멤버변수 숨기기 = 230
9.4 하위 클래스의 객체 생성자 = 232
9.5 Java 클래스의 분류 = 236
9.5.1 상위 클래스와 하위 클래스 = 237
9.5.2 abstract 클래스와 non-abstract 클래스 = 238
9.5.3 final 클래스와 non-final 클래스 = 240
9.5.4 인터페이스와 일반적 클래스 = 241
연습문제 = 242
제10장 인터페이스 = 245
10.1 인터페이스의 선언 = 246
10.1.1 인터페이스 수식어 = 246
10.1.2 인터페이스 이름 = 247
10.1.3 인터페이스 확장부 = 247
10.1.4 멤버변수 선언부 = 248
10.1.5 메소드 선언부 = 247
10.1.6 인터페이스 타입과 객체 참조변수 = 250
10.2 인터페이스의 구현 = 251
10.3 인터페이스의 활용 = 253
10.3.1 객체의 복사 = 254
10.3.2 애플릿에서의 쓰레드 수행 = 255
10.3.3 데이터베이스와의 연동 = 257
10.4 인터페이스가 필요한 이유 = 258
연습문제 = 261
제11장 추상화와 캡슐화 = 263
11.1 묶음화 = 263
11.1.1 수식에서의 묶음화 = 264
11.1.2 복합문에서의 묶음화 = 265
11.2 추상화 = 267
11.2.1 추상화의 필요성 = 268
11.2.2 메소드 추상화 = 272
11.2.3 묶음 추상화와 통합 추상화 = 277
11.2.4 전체적 묶음 추상화와 개별적 묶음 추상화 = 278
11.2.5 Java에서의 객체 추상화와 클래스 추상화 = 280
11.3 캡슐화 = 284
11.3.1 캡슐화의 일반적 의미 = 284
11.3.2 Java에서의 캡슐화 = 286
11.3.3 상태와 행위의 캡슐화인 객체 = 290
연습문제 = 292
제12장 다형성 = 295
12.1 다형성의 일반적 정의 = 295
12.2 C 언어에서의 다형성 = 298
12.3 Java에서의 다형성 = 303
12.4 하위타입 다형성 = 307
12.4.1 Vector 클래스에서의 하위타입 다형성 = 307
12.4.2 Family 클래스에서의 다형성 = 310
12.5 메소드의 다형성 = 314
12.5.1 메소드 오버로딩 = 315
12.5.2 메소드 오버라이딩 = 317
연습문제 = 323
제13장 예외 처리 = 325
13.1 예외 발생시키기와 예외 탐지 및 처리 = 326
13.1.1 예외 발생시키기 = 326
13.1.2 예외의 탐지 및 처리 = 328
13.1.3 예외 발생시키기와 탐지 및 처리의 예 = 329
13.1.4 예외 발생과 예외 처리의 분리 = 331
13.2 예외 발생 메소드의 호출 및 예외의 전파 = 333
13.3 예외 클래스의 정의 = 336
13.4 Java의 표준 예외 클래스 = 338
연습문제 = 343
제14장 강의를 마치면서 = 345
14.1 Java의 특징 = 345
14.2 더 배워야 할 것 = 347
14.3 프로그래밍이라는 것은? = 349
2부 Java 프로그램 작성사례
첫 번째 Java 프로그램 : 찍찍이의 하루 = 354
1단계 : 주어진 상황 = 354
2단계 : 상황을 정확한 표현으로 고치기 = 354
3단계 : 객체, 클래스, 특성의 파악 = 355
4단계 : Java 클래스의 작성 = 355
5단계 : 프로그램의 변경 = 358
6단계 : C 언어 프로그램과의 비교분석 = 358
두 번째 Java 프로그램 : 물품 구매 = 361
1단계 : 주어진 상황 = 361
2단계 : 상황을 정확한 표현으로 고치기 = 361
3단계 : 객체, 클래스, 특성의 파악 = 362
4단계 : Java 클래스의 작성 = 363
5단계 : 프로그램의 변경 = 366
세 번째 Java 프로그램 : 차 운행 = 367
1단계 : 주어진 상황 = 367
2단계 : 객체, 클래스, 특성의 파악 = 367
3단계 : Java 클래스의 작성 = 369
네 번째 Java 프로그램 : 수영장 회원관리 = 373
1단계 : 주어진 상황 = 373
2단계 : 객체, 클래스, 특성의 파악 = 373
3단계 : Java 클래스의 작성 = 375
4단계 : 프로그램 설명 = 379
3부 객체 지향을 위한 이야기
첫 번째 이야기 : 객체, 이름, 종 = 382
핵심사항 = 389
두 번째 이야기 : 객체, 이름, 종의 혼용 = 391
핵심 사항ㆍ연습문제 = 398
세 번째 이야기 : 객체와 클래스의 특성 = 399
핵심 사항ㆍ연습문제 = 409
네 번째 이야기 : 종과 분류 = 411
핵심 사항ㆍ연습문제 = 418
다섯 번째 이야기 : 상위종과 하위종 그리고 상속 = 421
핵심 사항ㆍ연습문제 = 431
여섯 번째 이야기 : 추상 = 433
핵심 사항ㆍ연습문제 = 441
부록
중간고사 = 444
기말고사 = 446
연습문제 해답 = 449
찾아보기 = 453