목차
제0장 자바 프로그래밍
1. 인터넷과 자바 = 19
2. 자바 셋업 = 20
3. 프로그램의 작성 = 22
0-1-1 자바 애플리케이션 기본(HelloWorld.java) = 25
0-2-1 키보드로부터 자료의 입력(KBD.java) = 26
4. 컴파일과 실행 = 28
5. 프로그램의 구조 = 30
0-3-1 6가지 토큰의 구분(Test.java) = 34
제1장 기본 자료형
1. 정수 자료형 = 39
1-1-1 정수형 변수의 선언과 초기화(Exlnteger.java) = 40
1-1-2 정수형 변수의 선언과 초기화(ExLong.java) = 41
1-1-3 정수 연산의 결과는 정수(ExlntegerOperation.java) = 42
1-1-4 정수 자료 표현의 한계(ExLimitedValue.java) = 43
2. 실수 자료형 = 44
1-2-1 실수형 자료의 선언과 초기화(ExFloatDouble.java) = 45
1-2-2 실수의 연산 결과(ExFloatingOperation.java) = 46
3. 문자 자료형 = 47
1-3-1 문자형 변수의 선언과 초기화(ExCharacter.java) = 48
1-3-2 문자열내의 특수문자의 효과(ExString.java) = 49
1-3-3 문자 자료의 연산(ExCharacterOperation.java) = 50
4. 논리 자료형 = 51
1-4-1 논리형 변수의 선언과 초기화(ExLogicalDataType.java) = 51
5. 지역 변수의 선언 = 52
1-5-1 변수의 선언과 사용범위(ExVariableScope.java) = 53
6. 메소드와 지역 변수 = 54
1-6-1 변수의 사용범위와 프로그램의 제어순서(ExVariableScope2.java) = 56
제2장 연산자
1. 연산자 종류 = 61
2. 대입 연산자 = 62
2-2-1 단순 대입 연산자의 사용(ExAssignmentOperators.java) = 62
2-2-2 변수값의 변화(ExLifeTime.java) = 64
2-2-3 대입 연산자의 사용(ExAssignmentOperators2.java) = 65
3. 산술 연산자 = 67
2-3-1 산술 연산자의 사용(ExArithmaticOperators.java) = 67
2-3-2 정수와 실수의 혼합 연산(ExArithmaticOperators2.java) = 68
2-3-3 부호 연산자의 사용(ExArithmeticOperators3.java) = 69
2-3-4 산술 연산자의 우선 순위(ExArithmaticOperators4.java) = 70
4. 중감 연산자 = 72
2-4-1 증감 연산자의 사용(ExInDecrement1.java) = 72
2-4-2 전, 후위 증가 연산자의 비교(ExInDecrement2.java) = 73
2-4-3 전, 후위 감소 연산자의 비교(InDecrement3.java) = 74
2-4-4 수식에 두 번 이상 사용된 증감 연산자(ExInDecrement4.java) = 75
2-4-5 연산자와 연산자를 붙여쓰기(ExInDecrement5.java) = 76
5. 관계 연산자 = 77
2-5-1 관계 연산자의 사용(ExRelationalOperator.java) = 77
6. 논리 연산자 = 79
2-6-1 논리 연산자의 사용(ExLogicalOperator.java) = 80
2-6-2 입력한 정수값의 관계 및 논리연산(ExLogicalOperator2.java) = 81
2-6-3 입력된 두 정수의 관계 및 논리 연산(ExLogicalOperator3.java) = 82
7. 조건 연산자 = 84
2-7-1 조건 연산자의 사용(ExConditionalOperator.java) = 84
2-7-2 입력된 정수값에 대한 조건 연산(ExConditionalOperator2.java) = 85
2-7-3 조건 연산자의 중첩 사용(ConditionalOperator3.java) = 86
2-7-4 중첩된 조건 연산식의 기술(ExConditionalOperator4.java) = 87
2-7-5 연산자의 우선순위(ConditionalOperator5.java) = 88
8. 비트 연산자 = 89
2-8-1 비트 연산자의 사용 1(ExBitwiseOperator.java) = 90
2-8-2 비트 연산자의 사용 2(ExBitwiseOperator2.java) = 91
2-8-3 비트 이동 연산자의 사용(BitwiseOperators3.java) = 91
2-8-4 비트 이동 연산의 결과(BitwiseOperators4.java) = 94
9. 기타 연산자 = 95
2-9-1 형 변환 연산자(TypeCasting.java) = 95
10. 연산자 우선 순위 = 97
제3장 선택제어
1. 제어 흐름 = 103
2. 단순 선택 = 103
3-2-1 단순 선택 구조(ExIfControls.java) = 105
3-2-2 블록을 사용한 단순 선택 구조(ExIfControls2.java) = 106
3. 양자 선택 = 107
3-3-1 양자 선택 구조(ExIfElseControls.java) = 107
3-3-2 블록을 사용한 양자 선택 구조(ExIfElseControls2.java) = 108
4. 다중 선택 Ⅰ = 109
3-4-1 다중 선택 구조(ExIfElseIfControls.java) = 110
5. 중첩 선택 = 111
3-5-1 중첩 선택 구조 1(ExNestedIfControls.java) = 112
3-5-2 조건 연산자와 중첩 선택 구조(ExConditionalVsIfControls.java) = 113
3-5-3 if∼else 짝짓기(ExIfElsePair.java) = 114
6. 다중 선택 Ⅱ = 115
3-6-1 switch를 사용한 다중 선택 구조 1(ExSwitch.java) = 116
3-6-2 switch를 사용한 다중 선택 구조 2(ExSwitchControls2.java) = 117
3-6-3 문자를 구분하기 위한 다중 선택 구조(ExSwitchControls3.java) = 119
제4장 표현 수식
1. 산술 수식 = 125
4-1-1 산술 수식 1(ArithmeticExpression1.java) = 125
4-1-2 산술 수식 2(ArithmeticExpression2.java) = 127
4-1-3 산술 수식 3(ArithmeticExpression3.java) = 128
2. 관계 수식 = 129
3. 논리 수식 = 130
4. 조건 수식 = 131
5. 응용 예제 = 131
4-5-3 값의 크기순으로 정렬(AscendingSort.java) = 134
4-5-4 급여 계산 응용(CalculateWages.java) = 136
제5장 반복 제어
1. while 반복문 = 141
5-1-1 while 반복문(ExWhileControl.java) = 142
5-1-2 While 블록(ExWhileControl2.java) = 143
5-1-3 반복 횟수 예측(ExWhileControl3.java) = 145
5-1-4 1부터 10까지 정수의 합(ExWhileControl4.java) = 146
5-1-5 0부터 100 사이 정수 중 3의 배수 합(ExWhileControl5.java) = 148
2. do∼while 반복문 = 149
5-2-1 do∼while 반복문 1(ExDoWhileControl1.java) = 150
5-2-2 do∼while 반복문 2(ExDoWhileControl2.java) = 151
3. for 반복문 = 152
5-3-1 for 반복문 1(ExForControl.java) = 153
5-3-2 두 개 이상의 초기식(ExForControl1.java) = 154
5-3-3 블록 내의 지역 변수(ExForControl2.java) = 155
5-3-4 지역 변수의 가시 범위(ExForControl3.java) = 156
5-3-5 1부터 10 사이의 정수 중 홀수, 짝수의 합(ExForControl4.java) = 157
5-3-6 초기식, 조건식, 증감식의 생략(ExForControl5.java) = 159
5-3-7 조건식만의 for문(ExForControl6.java) = 160
5-3-8 실수 자료형 제어 변수(ExForControl7.java) = 161
5-3-9 루프 제어 변수를 사용하지 않은 조건식(ExForControl8.java) = 162
5-3-10 임의의 수 입력과 출력(ExYaksu.java) = 164
4. 중첩 반복문 = 165
5-4-1 중첩된 for문(ExNestedFor.java) = 165
5-4-2 중첩 반복문을 이용한 구구단 1((ExNestedFor2.java) = 167
5. 기타 제어문 = 168
5-5-1 break문 사용(ExBreakControl.java) = 168
5-5-2 for 루프 내에서 break 문의 사용(ExForBreak.java) = 170
5-5-3 for 루프 내에서 continue문의 사용(ExForContinue.java) = 171
5-5-4 레이블과 return문의 사용 = 173
제6장 배열
1. 개념 = 179
6-1-1 배열의 정의(ExArrays.java) = 180
6-1-2 배열의 요소 수를 변수로(ExArrays2.java) = 182
2. 1차원 배열 = 184
6-2-1 1차원 배열의 선언과 사용(ExArrays3.java) = 185
6-2-2 1차원 배열 요소의 합과 평균(ExArrays4.java) = 186
6-2-3 1차원 배열 요소 중 최대값 또는 최소값 찾기(ExArrays5.java) = 187
6-2-4 명령어 라인 인자의 배열(ExArrays6.java) = 188
3. 다차원 배열 = 189
6-3-1 2차원 배열의 선언과 사용(ExArrays7.java) = 189
6-3-2 배열 요소의 수 알아내기(ExArrays8.java) = 191
6-3-3 서로 다른 크기를 가진 중첩된 배열(ExArrays9.java) = 192
6-3-4 2차원 배열 요소에 값 채우기(Ex2Table1.java) = 194
6-3-5 배열을 이용한 행렬의 곱셈(MatrixProduct.java) = 198
6-3-6 메소드 인자로서의 배열(Exarrays10.java) = 200
4. 배열의 응용 = 202
6-4-1 인스턴스 변수와 지역변수(ExInstanceVariable.java) = 204
6-4-2 프로그램 수행의 제어(ExProgramFlow.java) = 206
6-4-3 마방진 채우기(MagicSample.java) = 208
제7장 클래스와 객체
1. 객체지향 프로그래밍 = 217
2. 클래스와 필드 = 223
7-2-1 회원 클래스의 정의(Member.java) = 224
7-2-2 접근 제어자를 추가한 회원 클래스(Member.java) = 227
3. 생성자 = 227
7-3-1 회원 클래스의 인스턴스 생성과 초기화(ExCreateMember.java) = 228
7-3-2 생성자를 추가한 회원 클래스의 정의(Member.java) = 230
7-3-3 두 개의 생성자를 가진 회원 클래스의 정의(Member.java) = 231
7-3-4 생성자를 이용한 인스턴스 생성(ExCreateMember2.java) = 232
4. 메소드 = 233
7-4-1 회원 클래스 내의 메소드 정의(Member.java) = 235
7-4-2 회원 클래스의 메소드 호출(ExCreateMember3.java) = 236
7-4-3 회원 클래스의 메소드 추가(Member.java0) = 238
7-4-4 회원 클래스의 메소드 사용 2(ExCreateMember4.java) = 239
7-4-5 Call by value (CallByValue.java) = 240
7-4-6 Call by reference (CallByReference.java) = 241
7-4-7 배열 객체의 내용 수정과 결과(PassByReference.java) = 243
7-4-8 this 인스턴스 변수의 사용((Member.java) = 244
7-4-9 메소드 오버로딩(Member.java) = 246
7-4-10 명령어 라인에서 입력된 문자를 다시표시(Echo.java) = 248
7-4-11 toString() 메소드의 자동 호출(ExCreateMember3.java)1 = 249
5. 스태틱 멤버 = 250
7-5-1 회원 클래스에 static 변수의 추가(Member.java) = 251
7-5-2 static 변수의 사용(ExStaticVariable.java) = 252
6. 내부 클래스 = 255
7-6-1 내부 클래스(OuterClass.java) = 255
7-6-2 내부 클래스 2(OtherClass.java) = 257
제8장 클래스 확장
1. 클래스 확장 = 263
2. 확장과 생성자 = 265
8-2-1 클래스의 확장(ExSubClass.java) = 265
8-2-2 클래스의 확장시 생성 순서(ExSubClassCreation.java) = 268
3. protected의 의미 = 270
4. 재정의 = 270
8-4-1 메소드 재정의(ExOverriding.java) = 271
8-4-2 다형성 선행 예제(ExPolymorphism.java) = 273
8-4-3 다형성(ExPolymorphism.java) = 274
5. final 클래스와 멤버 = 277
6. Abstract 클래스 = 277
7. Interface와 다중 상속 = 279
제9장 예외 처리
1. 예외 처리란 = 287
2. 예외 처리기 = 288
9-2-1 예외 상황의 처리(ExException1.java) = 289
9-2-2 예외 상황의 처리 2(ExException2.java) = 290
3. 예외형의 생성 = 292
제10장 스레드
1. 다중 스레딩 = 299
2. 생성과 실행 = 300
10-2-1 Thread 클래스를 확장한 스레드 구현(PongDang.java) = 302
3. 동기화 = 307
4. 스레드 제어 = 313
10-4-1 스레드의 대기 상태와 실행 가능 상태로 전환(BankThread.java) = 314
5. Runnable = 317
10-5-1 Runnable 인터페이스를 구현한 예(RunPongDang.java) = 318
제11장 문자열
1. 자바 패키지 = 323
2. java.lang 패키지 = 326
11-2-1 데이터형 지원 클래스(ExWrapperClass.java) = 327
11-2-2 수학 함수 지원 클래스(ExMathClass.java) = 328
11-2-3 System, Runtime 클래스 활용(ExSystemClass.java) = 329
3. 문자열 상수 = 331
11-3-1 문자열의 크기 표시(ExString1.java) = 331
11-3-2 문자열 비교 메소드 사용(ExString2.java) = 334
11-3-3 객체의 값과 식별자의 비교(ExStringEquals.java) = 336
11-3-4 새로운 문자열 만들기(ExString3.java) = 338
4. 문자열 변수 = 340
11-4-1 문자열 변수의 사용(ExStringBuffer.java) = 341
제12장 컴포넌트
1. 이벤트 처리 = 347
12-1-1 프레임과 버틀(TestFrameButton.java) = 348
12-1-2 프레임의 윈도 이벤트 처리기능(ExFrameEvent.java) = 350
12-1-3 클레스 멤버를 사용하여 구현한 예제(TestframeEvent.java) = 355
12-1-4 지역 클래스를 사용하여 구현한 예제(TestframeEvent.java) = 355
12-1-5 익명 클래스를 사용하여 구현한 예제(TestframeEvent.java) = 356
2. Component = 357
3. Container = 360
4. Label = 362
5. Checkbo = 362
12-5-1 Label과 Chekcbox 컴포넌트의 사용(ExCheckbox.java) = 363
6. Button = 366
12-6-1 Button 컴포넌트 클래스의 사용(ExButton.java) = 366
7. TextField = 368
12-7-1 TextField 컴포넌트 클래스의 사용(ExTextField.java) = 369
8. TextArea = 371
9. List = 371
12-9-1 List와 TextField 컴포넌트의 사용 (ExList.java) = 372
10. Choice = 374
12-10-1 Choice와 Label 컴포넌트의 사용(ExChoice.java) = 374
11. Scrollbar = 376
12. Panel = 378
12-12-1 Frame의 생성과 삭제(ExFrame.java) = 379
13. Frame = 378
제13장 레이아웃
1. 순차형 배치(FlowLayout) = 385
13-1-1 FlowLayout 클래스의 사용(ExFlowLayout.java) = 386
2. 방위형 배치(BorderLayout) = 389
13-2-1 BorderLayout 클래스의 사용(ExBorderLayout.java) = 390
3. 격자형 배치(GridLayout) = 393
13-3-1 GridLayout 클래스의 사용(ExGridLayout.java) = 393
4. 카드형 배치(CardLayout) = 395
13-4-1 CardLayout 클래스의 사용(ExCardLayout.java) = 396
5. GridBagLayout = 399
13-5-1 GridBagLayout 클래스의 사용(ExGridBagLayout.java) = 400
제14장 자료구조
1. java.util 패키지 = 407
2. Vector = 408
14-2-1 Vactor 클래스를 사용한 파일의 줄 번호 추가(ExVector.java) = 408
3. Hashtable = 411
14-3-1 Hashtable 클래스를 사용한 서적 관리(ExHashtable.java) = 412
4. StringTokenizer = 415
14-4-1 토큰 분리(ExStringTokenizer.java) = 416
제15장 파일 처리
1. java.io 패키지 = 421
2. 파일 입·출력 = 424
15-2-1 파일에 쓰기 및 파일로부터 읽어오기(ExFileIO.java) = 424
3. 파일 클래스 = 430
15-3-1 디렉토리 정보 알아내기(ExFileStat.java) = 431
4. 데이터 베이스 연결 = 434
15-4-1 데이터베이스의 연결(ExConnectDB.java) = 437
15-4-2 데이터베이스 테이블의 생성(ExCreateDB.java) = 439
15-4-3 데이터베이스 테이블의 조회(ExQueryDB.java) = 442
15-4-4 데이터베이스 테이블의 갱신(ExUpdateDB.java = 445
제16장 그래픽
1. Graphics 개요 = 453
2. 멤버 요약 = 456
3. 사용 예제 = 463
16-3-1 도형 그리기(ExGraphics1.java) = 463
16-3-2 문자열 출력(ExGraphics2.java) = 468
16-3-3 이미지 표현(ExGraphics3.java) = 472
16-3-4 이미지 그리기(ExGraphics4.java) = 475
제17장 홈페이지
1. 홈페이지 = 483
2. 제목, 글자 크기 = 485
17-2-1 제목, 글자 크기, 설명문 예제(HelloJava.html) = 486
3. 문단의 구분 = 487
17-3-1 문단의 구분 예제(ExHtml2.html) = 488
4. 목록 만들기 = 489
17-4-1 목록과 인용문의 예(ExHtml3.html) = 489
5. 그림 넣기 = 491
17-5-1 이미지 삽입 예(ExImage.html) = 492
6. 연결하기 = 493
7. 배경과 글꼴 = 495
8. 테이블과 프레임 = 498
17-8-1 시간표 테이블 예(ExTable.html) = 500
17-8-2 프레임 틀(ExFrame.html) = 503
17-8-3 목차 견본(contents.html) = 504
17-8-4 제목 견본(title.html) = 504
17-8-5 내용 견본(mainpage.html) = 504
9. 홈페이지 제작 = 505
제18장 애플릿
1. 애플릿과 웹 = 511
2. 애플릿의 한계 = 512
3. 애플릿 기본 = 513
18-3-1 간단한 애플릿(AppletBasic.java) = 515
4. 애플릿 프로그래밍 = 517
18-4-1 숫자 야구 애플릿(BaseBallApplet.java) = 518
18-4-2 그림과 소리를 표현하는 애플릿(ImageSound.java) = 520
18-4-3 슬라이드 쇼를 보여주는 애플릿(SlideShow.java) = 523
제19장 네트워크
1. 네트워크 프로그래밍 = 533
2. java.net 패키지 = 535
3. 연결형 클래스 = 537
19-3-1 웹 클라이언트(ExWebClient.java) = 539
19-3-2 웹서버(ExWebServer.java) = 542
4. 비연결형 클래스 = 547
19-4-1 간단한 대화용 서버(ExTalkServer.java) = 549
19-4-2 간단한 대화용 클라이언트(ExTalkClient.java) = 551
제20장 프로그래밍
1. 숫자 퍼즐 = 559
20-1-1 숫자 퍼즐(NumericPuzzle.java) = 561
2. 숫자 야구 = 566
20-2-1 숫자 야구(BaseBall.java) = 567
3. 사다리타기 = 575
20-3-1 사다리 타기(Ladder.java) = 577
4. 전자 복권 = 591
20-4-1 전자 복권(Lotto.java) = 594
5. 이진 트리 = 606
20-5-1 이진 트리(BinaryTree.java) = 607
6. 전문가 시스템 = 618
20-6-1 전문가 시스템(ExpertSystem.java) = 621
제21장 스윙
1. 스윙이란? = 641
21-1-1 간단한 스윙 예제(SimpleSwing.java) = 645
2. 최상위 컨테이너 = 651
3. 중간단계 컨테이너 = 652
21-3-1 스윙 컨테이너 활용 예제(SwingExample.java) = 654
4. 최소단위 컴포넌트 = 657
21-4-1 스윙 컨테이너 활용 예제 1(TextIOPan.java) = 664
21-4-2 스윙 컨테이너 활용 예제 2(ChoiceItemPane.java) = 669
21-4-3 스윙 컨테이너 활용 예제 3(TablePane.java) = 676
21-4-4 스윙 컨테이너 활용 예제 4(TreePane.java) = 681
5. 스윙 그래픽 = 684
21-5-1 그림 맞추기(XPuzzle.java) = 686
21-5-2 파이그래프(XPieMeter.java) = 695
부록 A 프로그래머 적성 검사 = 705
부록 B 프로그래밍과 에러 = 712
부록 C Web Surfing = 721