JAVA 최신 버전 내용 수록!
기초부터 고급까지 한 권으로 끝내는 JAVA 프로그래밍
JAVA는 객체 지향을 완벽하게 지원하는 언어로 여전히 서버, 안드로이드 개발에 주로 사용되고 있다. 개발자들이 반드시 알아야 하는 필수 언어이지만 입문자가 이해하기에 다소 어려움이 있다. 이 책은 JAVA 입문자들이 쉽고 재미있게 학습할 수 있도록 게임, 인공지능, 그래픽 관련 흥미로운 LAB, Mini Project를 수록하였고 문답식 설명과 다양한 그림 자료를 활용하여 친절하게 설명했다.
최신 버전인 JDK 16 내용을 담았고 특히 람다식, 스트림을 주축으로 하는 함수형 프로그래밍은 챕터를 별도로 두어 다루었다. 모듈에 관한 내용도 추가했고 기존 2판 내용 중에서 멀티 스레딩 부분을 보강했다.
천인국
서울대학교 전자공학과에 입학하여 1983년에 공학사 학위를 취득하였고, 한국과학기술원 대학원에 입학하여 1985년에 전기 및 전자공학과 석사 학위를, 1993년에 박사 학위를 취득하였다. 1985년부터 1988년까지 삼성전자 종합연구소에서 주임 연구원으로 재직하였고, 1993년부터 현재까지 순천향대학교 컴퓨터 공학과 교수로 재직 중이다. 2005년에는 캐나다 UBC에서 방문교수를 지냈다.
저서로는 「인공지능」(2020, 인피니티북스), 「스크래치로 배우는 컴퓨팅 사고와 문제해결」(2019, 인피니티북스), 「OpenCV를 이용한 디지털 영상처리」(2019, 인피니티북스), 「Power Java Compact」(2018, 인피니티북스), 「어서와 C++는 처음이지!」(2018, 인피니티북스), 「문제해결과 컴퓨팅 사고」(2017, 인피니티북스), 「문제해결과 컴퓨팅 사고를 위한 스크래치」(2017, 인피니티북스), 「문제해결과 컴퓨팅 사고를 위한 파이썬」(2017, 인피니티북스), 「어서와 파이썬은 처음이지!」(2016, 인피니티북스), 「어서와 Java는 처음이지!」(2015, 인피니티북스), 「어서와 C언어는 처음이지!(2015, 인피니티북스), 「HTML5+CSS3+자바스크립트로 배우는 웹프로그래밍 기초」 (2014, 인피니티북스), 「Power JAVA 2판」(2012, 인피니티북스), 「C++ Espresso」(2010, 인피니티북스), 「Power C++」 (2010, 인피니티북스), 「쉽게 풀어쓴 C언어 Express」(2007, 생능출판사), 「C언어로 쉽게 풀어쓴 자료구조」(2005, 생능출판사) 등이 있다.
CHAPTER 01 자바 소개와 개발도구 설치
1.1 자바의 역사
1.2 자바의 특징
1.3 자바의 용도
1.4 가상 기계
1.5 자바의 종류와 버전
1.6 JDK 설치
1.7 명령어 버전 JDK 사용하기
1.8 이클립스 소개와 설치
1.9 이클립스로 첫 번째 프로그램 작성
LAB 이클립스 사용
Solution 이클립스 사용
1.10 컴파일 오류
1.11 이클립스로 프로젝트 내보내기 & 읽기
1.12 자바 참고 문서
Mini Project 사칙 연산 프로그램
Summary
Exercise
Programming
CHAPTER 02 자바 프로그래밍 기초
2.1 자바 프로그램 구성 요소
2.2 변수와 자료형
2.3 콘솔에서 입력받기
2.4 수식과 연산자
Mini Project 섭씨-화씨 온도 변환
Summary
Exercise
Programming
CHAPTER 03 조건문, 반복문, 배열
3.1 if-else 문
3.2 switch 문
3.3 for 문
3.4 while 문
3.5 배열
3.6 2차원 배열
3.7 ArrayList
Mini Project 숫자 추측 게임
Summary
Exercise
Programming
CHAPTER 04 클래스와 객체 I
4.1 객체 지향 프로그래밍이란?
4.2 클래스와 객체 만들기
4.3 생성자와 메소드 오버로딩
4.4 접근 제어
LAB 안전한 배열 만들기
4.5 무엇을 클래스로 만들어야 할까?
LAB 자동차 클래스 작성
Solution 자동차 클래스 작성
LAB 은행 계좌 클래스 작성
LAB 윈도우 생성해보기
Mini Project 주사위 게임
Summary
Exercise
Programming
CHAPTER 05 클래스와 객체 II
5.1 객체의 생성과 소멸
5.2 인수 전달 방법
5.3 정적 멤버
LAB 싱글톤 패턴
5.4 객체 배열
Mini Project 전기 자동차
Mini Project 책 정보 저장
Summary
Exercise
Programming
CHAPTER 06 상속
6.1 상속
6.2 상속과 접근 지정자
6.3 상속과 생성자
6.4 메소드 오버라이딩
6.5 다형성
LAB 도형 면적 계산하기
LAB 동물 다형성
6.6 상속 vs 구성
Mini Project 카드와 덱
Mini Project 황금 획득 게임
Summary
Exercise
Programming
CHAPTER 07 추상 클래스, 인터페이스, 중첩 클래스
7.1 추상 클래스
7.2 인터페이스
7.3 인터페이스를 이용한 다중 상속
7.4 디폴트 메소드와 정적 메소드
LAB 자율 주행 자동차
Solution 자율 주행 자동차
LAB 객체 비교하기
Solution 객체 비교하기
LAB 타이머 이벤트 처리
Solution 타이머 이벤트 처리
7.5 중첩 클래스
7.6 익명 클래스
Mini Project 큐(Queue)
Summary
Exercise
Programming
CHAPTER 08 자바 API 패키지, 예외 처리, 모듈
8.1 패키지란?
8.2 패키지 선언하기
8.3 패키지 사용하기
8.4 클래스 파일은 언제 로드될까?
8.5 자바 API 패키지
8.6 Object 클래스
8.7 랩퍼 클래스
8.8 String 클래스
8.9 기타 유용한 클래스
8.10 예외 처리란?
8.11 모듈
Mini Project 글자 추측 게임
Summary
Exercise
Programming
CHAPTER 09 자바 GUI 기초
9.1 자바 GUI 소개
9.2 자바 GUI 기초
9.3 컨테이너 살펴보기
9.4 배치 관리자
9.5 스윙 비주얼 디자이너: WindowBuilder
9.6 기초 컴포넌트들
LAB 계산기 예제
Mini Project 이미지 뷰어
Summary
Exercise
Programming
CHAPTER 10 GUI 이벤트 처리
10.1 이벤트 처리 개요
10.2 이벤트 처리 방법
10.3 스윙 컴포넌트의 이벤트
LAB 키패드 만들기
LAB 가위 바위 보 게임
10.4 키 이벤트
10.5 Mouse와 MouseMotion 이벤트
10.6 어댑터 클래스
Mini Project 계산기 프로그램
Mini Project Tic-Tac-Toe 게임
Mini Project 지뢰 찾기 게임
Summary
Exercise
Programming
CHAPTER 11 스윙 컴포넌트
11.1 스윙 컴포넌트 소개
11.2 레이블과 버튼의 고급 기능
11.3 텍스트 필드와 텍스트 영역
11.4 체크 박스
11.5 라디오 버튼
11.6 콤보 박스
11.7 메뉴 붙이기
11.8 슬라이더
Mini Project 피자 주문
Mini Project 입회원서
Summary
Exercise
Programming
CHAPTER 12 자바 그래픽
12.1 그래픽 프로그래밍의 기초
12.2 색상과 폰트 변경하기
12.3 기초 도형 그리기
12.4 이미지 출력 및 처리
12.5 그래픽과 이벤트의 결합
LAB 반사되는 공 애니메이션
LAB 영상 처리
LAB 움직이는 사진
Mini Project 신호등 프로그램
Mini Project 탁구 게임
Mini Project 벽돌깨기 게임
Mini Project 갤러그 게임 I
Summary
Exercise
Programming
CHAPTER 13 제네릭과 컬렉션
13.1 제네릭 프로그래밍
13.2 컬렉션이란?
13.3 벡터
13.4 ArrayList
13.5 LinkedList
13.6 Set
13.7 Map
13.8 Queue
13.9 Collections 클래스
LAB 영어사전
Mini Project 카드 게임
Mini Project 두더지 게임
Summary
Exercise
Programming
CHAPTER 14 함수형 프로그래밍, 람다식, 스트림
14.1 함수형 프로그래밍의 소개
14.2 람다식
LAB 타이머 프로그램
Solution 타이머 프로그램
14.3 동작 매개 변수화
14.4 함수형 인터페이스
14.5 메소드 참조
14.6 스트림 API
Mini Project 상품 검색하기
Summary
Exercise
Programming
CHAPTER 15 파일 입출력
15.1 입출력 스트림
15.2 문자 스트림
15.3 바이트 스트림
15.4 중간 처리 스트림
15.5 객체 저장하기
15.6 파일 객체
LAB 디렉터리 파일 검색 및 문장 추가
Solution 디렉터리 파일 검색 및 문장 추가
LAB 압축(ZIP) 파일 해제하기
LAB 파일 암호화하기
Solution 파일 암호화하기
LAB 파일에서 특정 문자 횟수 세기
Mini Project CSV 파일 읽기
Mini Project 시저 암호화
Summary
Exercise
Programming
CHAPTER 16 멀티 스레딩
16.1 멀티 태스킹
16.2 스레드 생성과 실행
LAB 자동차 경주 게임 만들기
Solution 자동차 경주 게임 만들기
16.3 스레드 스케줄링
16.4 동기화
16.5 스레드 간의 조정
LAB 공 움직이기
Solution 공 움직이기
Mini Project 갤러그 게임 II
Summary
Exercise
Programming
CHAPTER 17 네트워크 프로그래밍
17.1 네트워크 프로그래밍의 기본 개념
17.2 인터넷에서 파일 다운로드하기
17.3 TCP를 이용한 통신
17.4 서버와 클라이언트 제작
17.5 UDP를 이용한 통신
17.6 UDP를 이용한 서버와 클라이언트 작성하기
Mini Project 다자 회의 시스템
Summary
Exercise
Programming
CHAPTER 18 데이터베이스 프로그래밍
18.1 자바와 데이터베이스
18.2 데이터베이스의 기초
18.3 SQL
18.4 JDBC를 이용한 프로그래밍
18.5 Prepared Statements 사용하기
LAB GUI로 데이터베이스 내용 표시하기
Solution GUI로 데이터베이스 내용 표시하기
18.6 JDBC를 사용하여 이미지 저장하기
18.7 JDBC를 사용하여 텍스트 파일 저장하기
Mini Project 명예의 전당
Summary
Exercise
Programming
찾아보기
직관적인 그림과 풍부한 예제로
더 쉽고 재밌게 JAVA를 배워보자!
최신 언어들이 등장하고 있지만 JAVA는 여전히 많이 쓰이고 있는 중요한 언어이다. JAVA의 대표적인 특징인 ‘객체 지향’은 낯설고 이해하기 어렵다. 이 책은 객체 지향 개념에 대해 페이지를 아끼지 않고 자세하게 설명하고 있으며 개념을 잘 나타내는 그림으로 이해하기 쉽게 풀어서 설명한다. 개념 학습과 함께 Mini Project 27개, LAB 30개, 연습 문제 193개, 프로그래밍 문제 169개를 풀어보면서 프로그래밍 실력도 기를 수 있다.
[책의 특징]
- 적절한 그림을 통하여 중요한 개념들을 빠르게 학습
- 함수형 프로그래밍, 람다식, 모듈, Stream API 등 최신 JDK 16 내용 수록
- 기초부터 함수형 프로그래밍, 스레드, 네트워크 프로그래밍, 데이터베이스 프로그래밍까지 JAVA의 거의 모든 핵심적인 주제 수록
- 객체 지향 개념과 원리를 구체적인 예를 들어서 자세하고 쉽게 설명
- 다양하고 흥미로운 Lab, Mini Project, 연습 문제, 실습 문제 제공
- 핵심 개념을 점검할 수 있도록 각 섹션마다 중간 점검 문제 제공
[학습 단계]
1. 학습 목표 설정
- 학습하게 되는 장의 학습 목표를 구체적으로 살펴본다.
2. 본문 학습
- 풍부한 그림과 쉬운 설명으로 개념을 확실하게 이해한다.
3. 중간 점검 문제
- 한 단원이 끝나면 학습한 내용을 퀴즈로 점검한다.
4. LAB
- 실습을 통하여 학습한 내용을 다시 한번 복습한다.
5. Mini Project
- 간단한 프로젝트 문제로 기말 과제로도 사용할 수 있다.
6. 연습 및 프로그래밍 문제
- 오류 찾기, 빈칸 채우기, 프로그램 작성 등의 다양한 문제를 풀어본다.