자바 에브리원(2판)
『자바 에브리원』은 Java 및 컴퓨터 프로그래밍에 관한 핵심 사항과 효율적 학습에 초점을 맞춘 소개서이다. 가이드와 데모 예제들로 학생들의 성공적 학습을 돕고, 간단한 연습문제에서부터 실제 응용까지 다양한 프로그래밍 문제를 망라한다.
Couldn't load pickup availability
출판사 리뷰
출판사 리뷰
주요 특징
- 문제 해결 확대: 이 판에는 학생들이 프로그래밍 문제에 대한 솔루션을 기획하고 평가하는 것을 도울 기술들에 대한 실용적이고 단계적인 예시들이 추가되었다. 이러한 전략에는 다음과 같은 것들이 포함된다:
알고리듬 설계(수도코드 이용)
핸드-트레이싱
스토리보드
단계적 정제
- 새로운 저자 비디오: 비디오 보기들에서는 Cay Horstmann이 프로그래밍 문제를 해결할 때 거치는 단계들을 직접 보여준다.
- 선택적 과학/공학/비즈니스 연습문제: 장 끝의 연습문제들이 공학 및 비즈니스 영역 문제들로 보강되었다. 연습문제들은 공학/비즈니스/정보시스템 전공을 위해 자바를 배우는 학생들에 맞춰졌으며, 이러한 분야들에서의 프로그래밍의 가치를 보여주기 위해 설계되었다.
- 새롭고 재편성된 주제들: 독자들의 피드백을 반영하고 주제의 흐름을 개선하도록 각 장이 완전히 개편 및 개선되었다. 이제 인쇄판은 그래픽 사용자 인터페이스를 포함하며, 웹판은 고급 GUI, 객체 지향 설계, 재귀, 정렬 및 탐색, 자바 콜렉션 프레임을 포함한다. 새로운 보기 표, 사진, 연습문제들이 책 전체에 거쳐 추가되었다.
- 추가적 프로그래밍 예제: 저자는 새로운 프로그래밍 예제들을 여럿 추가했으며, 추가적인 프로그램 예들로 책의 예제들을 위한 소스 코드를 보강했다.
Cay S. Horstmann은 San Jose University의 컴퓨터과학과의 교수이다. 경험이 많은 전문 프로그래머이며 Preview Systems, Inc.의 부사장이자 CTO였다. 또한 주요 기업, 대학, 조직들을 위한 자바, C++, 윈도우, 인터넷 프로그래밍 분야의 고문이기도 하다. Horstmann은 Big C++, C++ for Everyone, Big Java, Big Java: Late Objects를 포함한 다수의 성공적인 전문서 및 교과서의 저자이다.
머리말
이 책은 Java 및 컴퓨터 프로그래밍에 관한 핵심 사항과 효율적 학습에 초점을 맞춘 소개서이다. 이 책은 학생들의 폭넓은 관심과 기량을 충족시키도록 설계되었으며, 컴퓨터 과학자, 공학자, 그리고 여타 학생들을 위한 첫 프로그래밍 과목에 적합하다. 사전 프로그래밍 경험이 전혀 필요하지 않으며, 약간의 고등학교 수학 정도만 필요하다. 이 책의 핵심적 특징은 다음과 같다.
기본을 먼저 제시한다.
이 책은 전통적 방식에 따라 처음에는 제어 구조와 방식들, 절차적 분해, 배열에 대해 강조한다. 앞장들에서는 객체들이 사용된다. 8장에서 학생들은 자신들의 클래스(class)들을 설계하고 구현하기 시작한다.
가이드와 데모 예제들로 학생들의 성공적 학습을 돕는다.
초보 프로그래머들이 종종"어떻게 시작하나요? 이제 뭘 해야 하나요?"라고 묻곤 한다. 물론, 프로그래밍처럼 복잡한 활동은 요리책 스타일의 설명으로 간략화될 수는 없다. 그렇지만, 단계적 지도는 자신감을 쌓고, 당면한 작업에 관한 개요를 제공하는 데 엄청난 도움을 준다.'Problem Solving(문제 풀기)'절들은 설계와 계획의 중요성을 강조한다.'How To' 가이드는 학생들의 공통적 프로그래밍 작업을 도와준다. 추가 실행 예제는 온라인으로 제공된다.
실습으로 완벽을 기한다.
물론 프로그래밍하는 학생들은 중요한 프로그램들을 구현할 수 있어야 하지만, 우선 해낼수 있다는 자신감을 먼저 가져야 한다. 이 책은 각 절의 끝에 풍부한 자체 검사들을 포함하고 있다. 실행하기(Practice It) 표시들은 각 절 후에 시도할 연습문제들을 제공한다. 각 장의 끝에는 매우 다양한 프로그래밍 문제가 있으며, 간단한 연습문제에서부터 실제 응용까지를 망라한다.
시각적 접근법으로 읽는 이에게 동기를 부여하며 쉽게 둘러볼 수 있게 해준다.
사진들이 컴퓨터 개념의 본질과 작용을 설명해주는 시각적 유추를 제공한다. 복잡한 프로그램 연산들을 단계적 그림들로 예를 들어 설명해준다. 문법 상자들과 보기표들은 다양한, 대표적이며 특별한 경우들을 간결한 형태로 제공한다. 텍스트로 된 내용에 집중하기 전에 시각 자료들을 훑어보는 것으로 쉽게'지형'을 파악할 수 있다.
기술적으로 세밀하면서도 본질에 초점을 맞춘다.
백과사전적으로 내용을 담는 것은 초보 프로그래머들에게 도움이 되지 않는다. 그러나, 그 반대, 즉, 축소해서 지나치게 간단한 중요 항목들만 나열하는 것도 마찬가지이다. 이 책에서는 독자가 추가 지식을 받아들일 준비가 되었을 때, 더 훌륭한 실습 또는 언어 특징들로 들어가는 별도의 노트와 함께, 본질적인 내용들이 소화 가능한 정도의 분량으로 제공된다.
역자 머리말
이 책을 처음 펼쳐 본 순간 풍부한 분량의 연습문제, 그림, 에피소드 등이 매우 인상적이었다. 다양한 연습문제와 직관적 이해를 돕는 그림과 흥미를 유발하는 에피소드 등은 이 책이 단기간에 쓰여진 책이 아님을 느끼게 해주었으며, 이 책을 쓰기 위해 저자가 꾸준하게 투입했을 노력을 엿볼 수 있었다.
Java는 같은 코드로 다양한 플랫폼이나 운영체제에서 실행될 수 있으며, 지속적으로 업그레이드 되고 있는 폭넓은 라이브러리를 갖추고 있고, 웹 애플리케이션 및 스마트폰 앱 프로그래밍에 유리한 등등의 많은 장점으로 인해 가장 널리 사용되고 있는 컴퓨터 프로그래밍 언어들 중 하나이다.
그러나, 대부분의 Java 도서가 지나치게 야심적으로 구성되어 있어, 많은 Java 입문자에게 평생 필요하지 않을 수도 있는 내용들도 제법 비중을 차지하고 있다. 그 반면, 이 책은 자바를 처음 접하는 이들에게 불필요한 내용은 철저하게 배제되어 있으며, 기초를 충실히 다지는 데 초점이 맞춰져 있다. 그 외에도 이 책에는 프로그래밍 관련 에피소드, 오랜 기간의 경험을 통해 터득한 실용적인 팁 등 다양한 내용들이 담겨있다. 특히 수학/물리/기계/전기/전자공학/경제/경영을 망라하는 광범위한 예제와 연습문제를 담고 있으므로, 이 책으로 자바를 공부하는 독자들이 향후 자바를 각자의 분야에 활용할 수 있는 능력을 갖추는 데 도움을 줄 것이다.
공간 제약상 이 책에는 Java와 통합개발환경을 설치하는 과정과 사용 방법 등 예비 단계에 대한 설명은 싣지 못했으나, 이 책의 웹사이트인 Daum의 RobotVision 카페(http://cafe.daum.net/RobotVision)의 [Java 에브리원] 게시판을 통해 자세한 자료를 제공하고 있다(내려받기에서부터 컴파일하기, 실행시키기, 디버깅하기까지). (참고로, Java는 http://www.oracle.com에서 무료로 받을 수 있다.
자바 프로그래밍을 위한 대표적인 통합개발환경으로는 NetBeans와 Eclipse 등이 있다. NetBeans는 http://www.netbeans.org에서 받거나, 또는 앞의 Oracle 사이트에서 Java와 함께 번들로 받을 수도 있다. Eclipse는 http://www.eclipse.org에서 받을 수 있다. 모두 무료로 받을 수 있다. Android 프로그래밍도 계획하고 있다면, Android SDK가 잘 지원되고 있는 Eclipse가 인기 있음을 참고한다.)
위 카페의 게시판은 카페 가입 신청 후 별도의 승인 절차나 대기 없이 바로 자동으로 이용 권한이 주어진다. 그 밖에도 강의노트 등 이 책과 관련된 다양한 자료들이 지속적으로 올려질 것이므로, 정기적으로 들러서 업데이트된 내용들을 확인한다면 이 책을 더욱 효율적으로 이용하게 될 것이다. Q&A도 운영하니 적극적 활용을 기대한다. 참고로, 원저자인 Horstmann이 운영하는 웹사이트 www.wiley.com/college/horstmann도 있다.
참고로, 이 책과 구성이 거의 같은 Horstmann의 "C++ 에브리원"과 함께 본다면 역시 중요한 객체지향 언어인 C++를 동시에 익히는 데에도 도움이 될 것이다.
이 책을 이용하는 독자들의 건승을 빈다.
목차
목차
1.1 컴퓨터 프로그램 2
1.2 컴퓨터 해부 3
1.3 자바 프로그래밍 언어 4
1.4 프로그래밍 환경 익히기 7
1.5 나의 첫 프로그램을 분석하기 11
1.6 오류 14
1.7 문제 해결하기: 알고리듬 설계 16
CHAPTER 02 기본 데이타 타입 29
2.1 변수 29
2.2 산수 40
2.3 입력과 출력 48
2.4 문제 해결하기: 먼저 손으로 하라 56
2.5 문자열 58
CHAPTER 03 판단 81
3.1 if 문 82
3.2 수와 문자열 비교 88
3.3 다지 선다 95
3.4 내포 분기 99
3.5 문제 해결하기: 흐름도 104
3.6 문제 해결하기: 테스트 케이스 107
3.7 부울 변수와 연산자 110
3.8 응용: 입력 확인 115
CHAPTER 04 루프 137
4.1 while 루프 138
4.2 문제 해결하기: 핸드‐트레이싱 144
4.3 for 루프 148
4.4 do 루프 154
4.5 응용 : 센티널 값 처리하기 156
4.6 문제 해결하기: 스토리보드 160
4.7 공통 루프 알고리듬 163
4.8 내포 루프 170
4.9 응용: 랜덤 수와 시뮬레이션 174
CHAPTER 05 메소드 199
5.1 블랙박스로서의 메소드 200
5.2 메소드 구현하기 202
5.3 파라미터 전달 205
5.4 반환 값 208
5.5 반환 값이 없는 메소드 211
5.6 문제 해결하기: 재사용 가능한 메소드 213
5.7 문제 해결하기: 단계적 정제 215
5.8 변수 스코프와 전역 변수 222
5.9 재귀 메소드(선택 사항) 225
CHAPTER 06 배열과 배열 리스트 247
6.1 배열 248
6.2 개량형 for 루프 255
6.3 공통적 배열 알고리듬 256
6.4 메소드에 배열 사용하기 266
6.5 문제 해결하기: 알고리듬 적용하기 277
6.6 문제 해결하기: 물체를 다뤄서 알고리듬을 발견하기 276
6.7 2차원 배열 279
6.8 배열 리스트 287
CHAPTER 07 입력/출력과 예외처리 313
7.1 텍스트 파일 읽기와 쓰기 314
7.2 텍스트 입력과 출력 319
7.3 명령줄 인수 327
7.4 예외 처리 334
7.5 응용: 입력 오류 처리 344
CHAPTER 08 객체와 클래스 357
8.1 객체 지향 프로그래밍 358
8.2 간단한 클래스 구현하기 360
8.3 클래스의 공용 인터페이스 지정하기 363
8.4 데이타 표현 방법 설계하기 367
8.5 인스턴스 메소드 구현하기 369
8.6 생성자 371
8.7 클래스를 테스트하기 376
8.8 문제 해결하기: 객체 추적하기 382
8.9 문제 해결하기: 객체 데이타 패턴 385
8.10 객체 참조 392
8.11 정적 변수와 메소드 397
CHAPTER 09 상속과 인터페이스 413
9.1 상속 계층 구조 414
9.2 하위클래스 구현하기 418
9.3 메소드 오버라이딩 422
9.4 다형성 428
9.5 Object : 최상위클래스 439
9.6 인터페이스 유형 446
CHAPTER 10 그래픽 사용자 인터페이스(GUI) 463
10.1 프레임 윈도우 464
10.2 이벤트와 이벤트 처리하기 468
10.3 텍스트 입력 처리하기 479
10.4 그림 그리기 484
부록
부록A 유니코드의 기본 라틴어와 라틴어-1 하위집합 505
부록B 자바 연산자 요약 509
부록C 자바 예약어 요약 511
부록D 자바 라이브러리 513
용어 사전 545
찾아보기 559
저자
저자
Your payment information is processed securely. We do not store credit card details nor have access to your credit card information.

