이미지 확대/축소가 가능합니다.

닫기


그림으로 쉽게 배우고 이해하는 Java의 모든 것
‘그림으로 배우는 Java Programming 2nd Edition’

Java 언어는 어플리케이션 뿐만 아니라 웹, 모바일 분야까지 다양하게 활용되는 프로그래밍 언어입니다. 이 책은 프로그래밍 경험이 없더라도 Java를 기초부터 심화 내용까지 Java의 모든 것을 그림으로 쉽게 설명해주는 Java 입문서입니다. 기존 출간되었던 ‘그림으로 배우는 Java Programming'의 개정판으로 최신 Java 8 개발환경에 대응하며, Java를 사용하기 위한 개발 환경 구축부터 기본적인 Java 문법 설명과 추가적으로 Java 응용을 위한 그래픽 어플리케이션 내용을 설명하고 있습니다.

Java의 개념 설명과 함께 샘플 소스 코드를 제공하여 실제 프로그래밍을 했을 때 어떻게 구현되는지 직접 따라하면서 배울 수 있습니다. 또한, 이해하기 어려운 개념들을 이해하기 쉽도록 다양한 예시와 그림을 통해 설명하였습니다. 각 Lesson마다 강의 요약과 연습문제를 통해 해당 Lesson에서 배운 내용들을 복습해볼 수 있습니다.

마지막 Lesson에는 Java를 응용하는 방법인 그래픽 어플리케이션이 새롭게 추가되었습니다.이미지를 처리하거나 애니메이션을 만드는 방법과 Web 서버에서 실행되는 프로그램 개발에 도움이 될 만한 Java를 응용하는 방법에 대해 설명해줍니다.



Lesson 1. 시작하기
1.1 Java로 만드는 프로그램
프로그램의 원리
프로그래밍 언어 Java
1.2 코드 입력
JDK를 인스톨하기
코드의 원리 이해하기
텍스트 에디터에 코드 입력하기
1.3 프로그램의 작성
컴파일의 원리 이해하기
컴파일러 실행하기
1.4 프로그램의 실행
프로그램 실행하기
Java 프로그램을 다른 환경에서 사용하기
1.5 강의 요약
연습 문제

Lesson 2. Java의 기본
2.1 화면으로 출력하기
새로운 코드 입력하기
화면에 출력하기
여러 가지 출력 방법 이해하기
2.2 코드의 내용
코드의 흐름 따라가 보기
main( ) 메소드
1문장씩 처리하기
코드를 읽기 쉽게 만들기
주석 작성하기
주석을 입력하는 또 다른 방법
클래스 둘러보기
2.3 문자와 숫자
리터럴이란
문자 리터럴
이스케이프 시퀀스
문자 코드
문자열 리터럴
숫자 리터럴
2.4 강의 요약
연습 문제

Lesson 3. 변수
3.1 변수
변수의 원리를 이해하기
3.2 식별자
변수의 ‘이름’이 되는 식별자
3.3 형
형의 원리 이해하기
3.4 변수 선언
변수 선언하기
3.5 변수의 이용
변수에 값 대입하기
변수의 값 출력하기
변수 초기화하기
변수의 값 바꾸기
다른 변수에 값 대입하기
변수에 값을 대입할 때의 주의점
변수의 선언 위치에 주의
3.6 키보드 입력
키보드로 입력하기
숫자 입력하기
2개 이상의 숫자 입력하기
3.7 강의 요약
연습 문제

Lesson 4. 식과 연산자
4.1 식과 연산자
식의 원리 이해하기
식의 값 출력하기
다양한 연산하기
키보드로 입력한 값을 더하기
4.2 연산자의 종류
다양한 연산자
문자열 연결 연산자
증가·감소 연산자
증가·감소 연산자의 전위와 후위
대입 연산자
시프트 연산자
4.3 연산자 우선 순위
연산자 우선 순위란
같은 우선 순위의 연산자 사용하기
연산자 우선 순위 조사하기
4.4 형 변환
큰 사이즈의 형에 대입하기
작은 사이즈의 형에 대입하기
다른 형끼리 연산하기
같은 형끼리 연산하기
4.5 강의 요약
연습 문제

Lesson 5. 경우에 따른 처리
5.1 관계 연산자와 조건식
조건의 원리 이해하기
조건을 작성하기
관계 연산자 사용하기
5.2 if 문
if 문의 원리 이해하기
if 문으로 여러 개의 문장 실행시키기
블록으로 감싸지 않으면 어떻게 되나요
5.3 if~else 문
if~else 문의 원리 이해하기
5.4 여러 조건을 판단하기
if ~else if ~else 문의 원리 이해하기
5.5 switch 문
switch 문의 원리 이해하기
break 문이 빠져 있다면?
입력 문자로 분기하기
5.6 논리 연산자
논리 연산자의 원리 이해하기
복잡한 조건 판단하기
조건 연산자의 원리 이해하기
5.7 강의 요약
연습 문제

Lesson 6. 여러 번 반복하기
6.1 for 문
for 문의 원리를 이해하기
변수를 반복문 내에서 사용하기
for 문 응용하기
6.2 while 문
while 문의 원리 이해하기
6.3 do~while 문
do~while 문의 원리 이해하기
6.4 문장의 중첩
for 문 중첩하기
if 문 등과 조합하기
6.5 프로세스 흐름의 변경
break 문의 원리를 이해하기
switch 문 안에서 break 문 사용하기
continue 문의 원리 이해하기
6.6 강의 요약
연습 문제

Lesson 7. 배열
7.1 배열
배열의 원리 이해하기
7.2 배열의 준비
배열 준비하기
배열에 값을 대입하기
7.3 배열의 이용
반복문을 배열에 사용하기
배열 첨자 사용 시 주의점
키보드로 배열 길이를 입력하기
7.4 배열을 선언하는 방법
배열을 선언하는 또 다른 방법 이해하기
배열을 초기화하기
7.5 배열 변수
배열 변수에 값을 대입하기
배열 변수에 값을 대입한다는 것
7.6 배열의 응용
배열의 길이를 알기
배열의 내용을 정렬하기
7.7 다차원 배열
다차원 배열의 원리 이해하기
다차원 배열을 선언하는 방법
7.8 강의 요약
연습 문제

Lesson 8. 클래스의 기본
8.1 클래스 선언
클래스란
Java에는 클래스가 필수적이다
클래스의 원리 이해하기
클래스 선언하기
8.2 객체 생성
클래스를 사용한다는 것은
객체를 생성하기
멤버에 접근하기
8.3 클래스 사용
클래스를 사용하는 프로그램
2개 이상의 객체 생성하기
2개의 클래스 파일이 생성된다
클래스를 사용하는 순서 정리
8.4 메소드의 기본
메소드 정의하기
메소드 호출하기
필드에 접근하는 방법
메소드에 접근하는 방법
8.5 메소드의 인수
인수를 사용하여 정보 전달하기
인수를 전달하여 메소드 호출하기
다른 값을 전달해서 호출하기
변수 값을 전달해서 호출하기
둘 이상의 인수를 가지는 메소드 정의하기
인수가 없는 메소드를 사용하기
8.6 메소드의 리턴 값
리턴 값의 원리 이해하기
리턴 값이 없는 메소드를 사용하기
8.7 강의 요약
연습 문제

Lesson 9. 클래스의 기능
9.1 멤버에 대한 접근 제한
멤버에 대한 접근 제한하기
private 멤버 만들기
public 멤버 만들기
캡슐화의 원리 이해하기
9.2 메소드의 오버로딩
오버로딩의 원리를 이해하기
오버로딩 사용 시 주의점
9.3 생성자의 기본
생성자의 원리 이해하기
생성자의 역할을 이해하기
9.4 생성자 오버로딩
생성자를 오버로딩하기
다른 생성자를 호출하기
생성자를 생략하면 어떻게 되나요?
생성자에 접근 제한자를 붙이기
9.5 클래스 변수, 클래스 메소드
인스턴스 변수의 원리 이해하기
클래스 변수와 클래스 메소드
클래스 메소드 사용시 주의점
9.6 강의 요약
연습 문제

Lesson 10. 클래스 이용
10.1 클래스 라이브러리
클래스 라이브러리의 원리 이해하기
지금까지 사용한 클래스 이해하기
10.2 문자열 처리 클래스
문자열 처리 클래스
문자열의 길이를 알아내고 문자열에서 문자를 추출하기
문자열 객체를 생성할 때의 주의점
대문자와 소문자를 변환하기
문자 검색하기
문자열 추가하기
10.3 기타 클래스
Integer 클래스 사용하기
Math 클래스 사용하기
10.4 클래스 형 변수
클래스 형 변수에 대입하기
null의 원리를 이해하기
메소드의 인수로서 사용하기
값의 전달과 참조의 전달
10.5 객체 배열
객체 배열 다루기
10.6 강의 요약
연습 문제

Lesson 11. 새로운 클래스
11.1 상속
상속의 원리 이해하기
클래스 확장하기
서브 클래스의 객체 생성하기
슈퍼 클래스의 생성자 호출하기
슈퍼 클래스의 생성자 지정하기
11.2 멤버에 접근하기
서브 클래스 안에서 접근하기
11.3 오버라이딩
메소드를 오버라이딩하기
슈퍼 클래스의 변수로 객체 다루기
오버라이딩의 중요성 이해하기
슈퍼 클래스와 같은 이름을 가지는 멤버 사용하기
final 붙이기
11.4 Object 클래스의 상속
클래스의 계층 구조 만들기
Object 클래스의 원리 이해하기
toString( ) 메소드 정의하기
equals( ) 메소드 사용하기
getClass( ) 메소드 사용하기
11.5 강의 요약
연습 문제

Lesson 12. 인터페이스
12.1 추상 클래스
추상 클래스의 원리 이해하기
추상 클래스 사용하기
instanceof 연산자
12.2 인터페이스
인터페이스의 원리 이해하기
인터페이스 구현하기
12.3 클래스 계층
다중 상속의 원리 이해하기
2개 이상의 인터페이스 구현하기
인터페이스 확장하기
클래스의 계층 구조 설계하기
12.4 강의 요약
연습 문제

Lesson 13. 대규모 프로그램의 작성
13.1 파일 분할
파일 분할하기
13.2 패키지의 기본
패키지의 원리를 이해하기
같은 패키지 안의 클래스 사용하기
13.3 패키지의 사용
같은 패키지에 포함시키기
다른 패키지로 나누기
다른 패키지 안의 클래스 사용하기
패키지 이름으로 클래스를 구분하기
13.4 임포트
임포트의 원리 이해하기
서브 패키지 만들기
클래스 라이브러리의 패키지
여러 클래스를 임포트하기
13.5 강의 요약
연습 문제

Lesson 14. 예외와 입출력 처리
14.1 예외의 기본
예외의 원리 이해하기
예외를 처리하기
finally 블록 추가하기
14.2 예외와 클래스
예외와 클래스의 원리 이해하기
예외 정보 출력하기
예외의 종류를 파악하기
14.3 예외 던지기
예외 클래스 선언하기
예외 던지기
예외를 받아내지 않으면 어떻게 되나요?
14.4 입출력의 기본
스트림의 원리 이해하기
스트림의 예를 이해하기
파일의 원리 이해하기
파일에 출력하기
파일로 입력하기
많은 양의 데이터를 입력하기
명령 줄 인수 사용하기
14.5 강의 요약
연습 문제

Lesson 15. 스레드
15.1 스레드의 기본
스레드의 원리 이해하기
스레드 기동시키기
여러 개의 스레드 기동시키기
15.2 스레드의 상태 변화시키기
스레드를 일시 정지시키기
스레드 종료를 기다리기
15.3 스레드의 생성방법
스레드를 생성하는 또 다른 방법을 이해하기
15.4 동기화
동기화의 원리 이해하기
15.5 강의 요약
연습 문제

Lesson 16. 그래픽 어플리케이션
16.1 GUI 어플리케이션
GUI의 구조 이해하기
컴퍼넌트의 구조 이해하기
색상과 글꼴 설정하기
이벤트의 구조 이해하기
고도의 이벤트 처리하기
이벤트 처리를 간결하게 작성하기
16.2 어플리케이션의 응용
이미지 표시하기
마우스로 그리기
애니메이션 만들기
16.3 Java의 응용
스마트폰 어플리케이션 개발하기
Web 어플리케이션 개발하기
16.4 강의 요약
연습문제

Appendix A. 연습문제 해답
Appendix B. FAQ



상세 이미지 1



이 책의 구성

Lesson 01. 시작하기
이 장에서는 Java 언어를 사용하여 프로그램을 작성하는 방법을 학습합니다. Java 언어의 학습을 시작한지 얼마 안된 무렵은 생소한 프로그래밍 단어에 고생할지도 모릅니다. 그러나 이 장에서 다루는 키워드를 이해하게 되면, Java 언어의 이해도 편해질 것입니다. 하나씩 차근차근 나의 것으로 만들어보도록 합시다.

Lesson 02. Java의 기본
제 1장에서는 Java 코드를 입력한 후, 컴파일러와 인터프리터를 사용하여 프로그램을 실행시키는 방법을 배웠습니다. 그럼 앞으로 우리는 어떤 코드를 입력하면 좋을까요? 코드를 작성하여 프로그램을 만들기 위해선 Java 문법 규칙을 알아야 합니다. 이 장에서는 기본적인 Java 문법을 배워보도록 하겠습니다.

Lesson 03. 변수
제 2장에서는 문자나 숫자를 화면에 출력하는 방법을 배웠습니다. 문자나 숫자는 프로그래밍을 시작한지 얼마 되지 않은 분들에게도 그다지 위화감 없는 주제였으리라 생각합니다. 이 장에서는 드디어 프로그래밍 언어로서의 Java의 기능을 배우게 됩니다. 먼저, 가장 기본적인 ‘변수’에 대해 살펴봅시다.

Lesson 04. 식과 연산자
컴퓨터는 다양한 일을 할 수 있습니다. 이 때 필요한 기능이 ‘연산’입니다. Java 프로그램을 만들 때에도 연산은 빼 놓을 수 없는 기능 중 하나입니다. Java에서는 간단하게 연산을 수행할 수 있도록‘연산자’라는 기능을 제공합니다. 이 장에서는 다양한 연산자의 사용 방법을 배웁니다.

Lesson 05. 경우에 따른 처리
지금까지 작성했던 코드에서 각 문장들은 한 번에 하나씩 처리되고 있었습니다. 그러나 더 복잡한 처리를 하고 싶은 경우, 순차적으로 문장을 처리하는 것만으로는 부족할 수 있습니다. Java에는 여러 문장을 모아서 코드의 흐름을 제어하는 방법이 있습니다. 이 장에서는 특정 상황에 맞추어 코드의 흐름을 제어하는 문장을 배웁니다.

Lesson 06. 여러 번 반복하기
제 5장에서는 특정 상황에 맞추어 코드의 흐름을 제어하는 문장을 배웠습니다. Java에는 그 외에도 문장을 컨트롤하는 기능이 포함되어 있습니다. 이 기능은 ‘반복문(루프문)’이라고 합니다. 반복문을 사용하면 동일한 작업을 여러 번 반복할 수 있습니다. 이 장에서는 반복문에 대해 배웁니다.

Lesson 07. 배열
제 3장에서는 변수를 사용하여 특정 값을 저장하는 방법에 대해 배웠습니다. Java에는 이 외에도 동일한 형의 여러 값을 함께 저장하는‘배열’이라는 기능이 있습니다. 배열을 사용하면 많은 데이터를 처리하는 복잡한 코드를 깔끔하게 작성할 수 있습니다. 이 장에서는 배열의 원리에 대해 배워 보겠습니다.

Lesson 08. 클래스의 기본
지금까지 변수·배열 등 다양한 Java의 기능에 대해 배워 보았습니다. 이러한 기능들은 예로부터 다양한 프로그래밍 언어가 지원하고 있었습니다. 그러나 프로그램이 복잡해짐에 따라, 보다 효율적으로 프로그램을 작성하는 방법이 필요하게 되었습니다. 그러한 필요에 따라 새롭게 등장한 기능이 ‘클래스’입니다. 이 장에서는 클래스의 기본을 배웁니다.


Lesson 09. 클래스의 기능
제 8장에서는 클래스의 기본에 대해 학습했습니다. 그러나 클래스의 강력한 기능은 이 뿐만이 아닙니다. 견고한 프로그램의 작성을 돕기 위하여 클래스에는 다양한 기능이 준비되어 있습니다. 이 장에서는 객체 지향에 바탕을 둔 클래스의 강력한 기능에 대해 알아보겠습니다.

Lesson 10. 클래스 이용
지금까지는 클래스와 그 강력한 기능을 확인하였습니다. 이 장에서는 클래스를 실제로 활용하는 방법을 학습하겠습니다. 클래스를 활용하면 실용적인 프로그램을 만들 수 있습니다. 이 장에서는 다양하게 변화하는 프로그램을 만들어 보겠습니다.

Lesson 11. 새로운 클래스
우리들은 8장부터 10장에 걸쳐 클래스의 다양한 기능을 학습했습니다. Java는 이미 설계된 클래스를 활용하여 새로운 클래스를 효율적으로 만들 수 있도록 지원합니다. 기존의 클래스를 이용하여 프로그램을 효율적으로 만들 수 있다는 것은 Java의 큰 장점입니다. 이 장에서는 새로운 클래스를 만드는 방법을 배워 보겠습니다.

Lesson 12. 인터페이스
이 장에서는 특수한 클래스에 대해 배워 보겠습니다. 이 장에서 배운 지식을 활용하면 수많은 클래스를 활용한 일관된 프로그래밍이 가능해집니다. 여기에서는 ‘추상 클래스’와 ‘인터페이스’라는 새로운 지식을 배워봅니다.

Lesson 13. 대규모 프로그램의 작성
지금까지 우리들은 소규모 프로그램을 여러 개 만들었습니다. 그러나 프로그램의 규모가 커지면 커질수록 코드에서는 더 많은 클래스를 다루어야 할 것입니다. 이 장에서는 큰 프로그램의 작성에 필요한 지식을 배웁니다.

Lesson 14. 예외와 입출력 처리
프로그램 실행 시에는 다양한 에러가 발생할 수 있습니다. Java는 프로그램 실행 중에 발생하는 오류에 대응하기 위한 ‘예외 처리’ 메커니즘을 제공합니다. 이 장에서는 이 예외 처리에 대해 배웁니다. 또한, 데이터의 읽기 및 쓰기를 위한 ‘입출력 처리’에 대해서도 학습해 보겠습니다.


Lesson 15. 스레드
지금까지 우리들이 작성한 프로그램은 그 수행 과정을 하나의 흐름으로 보고 추적할 수 있었습니다. Java는 이러한 처리 흐름을 코드에서 여러 개 만들 수 있도록 지원합니다. 이 장에서는, 처리의 흐름이기도 한 스레드를 여러 개 운영하는 방법을 배워 보겠습니다.

Lesson 16. 그래픽 어플리케이션
Java의 응용 분야는 다양합니다. Java를 사용하면 그래픽 윈도우 어플리케이션과 스마트폰 어플리케이션을 만들 수 있습니다. 또한, Web 서버에서 실행되는 프로그램을 개발할 수도 있습니다. 이 장에서는 Java를 응용하는 방법을 하나하나 소개하도록 하겠습니다.