분야별도서 > 프로그래밍 > JAVA

분야별도서

어서와 JAVA는 처음이지!: JDK8로 배우는 자바 프로그래밍

  • 저자천인국
  • 발행일2015-11-25
  • 정가33,000원
  • 페이지886 페이지
  • ISBN979-11-85578-21-7
  • 일반자료 Test Bank (연습문제)
    소스파일 (Source File) 2가지
    정오표
  • 책소개
  • 저자소개
  • 목차
  • 출판사 서평
더 이상 이론에 지쳐 JAVA를 포기하지 말자

프로그램을 배운다는 것은 나를 표현하는 또 하나의 언어를 습득하는 일이다. 내 뜻대로 알고리즘을 만들어내고, 생각했던 대로 결과물이 산출되는 것은 짜릿한 경험이다. 하지만 프로그램 소스가 손가락에 익숙해지기도 전에 독자들은 이론에 지쳐서 책을 덮기 일쑤였다. 이 책은 말보다는 그림으로, 중요한 개념을 확실하게 설명한 다음, LAB을 통해 충분히 활용할 수 있게 하였다.

국내서 중에서 가장 많은 LAB문제 수록

if-else를 배웠다면 성적에 따라 학점을 결정한다거나, 인사말을 출력할 수 있을 것이다. switch문이라면 월의 일수를 출력할 수 있어야 한다. break나 continue문이라면 이제 로또 확률도 계산할 수 있게 될 것이다. 2차원 배열이라면? 여러분은 이젠 ‘지뢰찾기 게임’을 프로그래밍 할 수 있게 된다. 즉, 이론을 위한 이론이 아닌 내 지식이 되는 JAVA를 수많은 LAB문제를 통해 확인할 수 있다.

가장 최신의 JAVA, 가장 세심한 JAVA 설명서

이 책은 자바의 가장 최신버전인 JDK8을 포함시켰다. 이 의미는 람다식과 같은 기능을 통해 짧은 코드로도 강력한 기능을 가능하게 한다는 뜻이다. 또한, 각각의 주제에 대해 개념과 원리를 세심하게 분석하여 독자들이 공부를 해나가면서 포기하는 일이 없도록 하였다. 특히 중요한 핵심 개념들에 대한 설명에서는 지면을 아끼지 않았다.

천인국 

 

서울대학교 전자공학과에 입학하여 1983년 공학사 학위를 취득하였고한국과학기술원 대학원에 입학하여 1985년 전기 및 전자공학과 석사와 박사 학위를, 1993년에 박사 학위를 취득하였다. 1985년부터 1988년까지 삼성전자의 종합연구소에서 주임 연구원으로 재직하였고, 1993년부터 현재까지 순천향대학교 정보기술공학부 교수로 재직 중이다. 2005년에는 캐나다 UBC에서 방문 교수를 지냈다

 

저서로는C++ ESPRESSO(2010, 인피니티북스), Power C++(2010, 인피니티북스),Power JAVA 2(2012, 인피니티북스), HTML5 + CSS3 + JavaScript로 배우는 웹프로그래밍 기초(2015, 인피니티북스), 쉽게 풀어쓴 C언어 Express(2007, 생능출판사),C언어로 쉽게 풀어쓴 자료구조(2005, 생능출판사),누구나 쉽게 즐기는 C언어 콘서트(2010, 생능출판사)등이 있다
Chapter 01 기초사항
01 자바란 무엇인가
02 자바의 특징
03 자바 가상 기계
04 자바의 종류
05 자바로 만들 수 있는 것
06 JDK의 설치
07 자바 프로그램 개발 단계
08 JDK 사용하기
09 자바 문서 참조하기
   LAB JDK 1.8 데모 프로그램 실행하기
10 이클립스 소개와 설치
11 이클립스로 첫 번째 프로그램 작성
12 컴파일 오류
13 이클립스로 프로젝트 내보내기 & 읽기
   LAB 이클립스를 이용하여 프로그램 작성하기

Chapter 02 자바 프로그래밍 기초
01 "Hello World!" 예제 분석
02 기초 개념들
   LAB 순차적인 프로그램 작성하기
03 변수와 자료형
   LAB 지구에서 가장 가까운 별까지의 거리 계산하기
04 수식과 연산자
05 형변환
06 우선순위와 결합 규칙
   LAB 2차 방정식의 근을 계산하여 보자
07 문자열
08 입력과 출력
   LAB 원의 면적 계산하기
   LAB 직사각형의 둘레와 면적 계산하기

Chapter 03 선택과 반복
01 제어문
02 if-else문
   LAB 성적에 따라 학점 결정하기
   LAB 인사말 출력하기
03 switch문
   LAB 월의 일수 출력하기
04 while문
   LAB 최대 공약수 찾기
05 for문
   LAB 약수 계산하기
   LAB 난수의 합 계산하기
06 break와 continue
   LAB 숫자 추측 게임
   LAB 로또 확률 계산

Chapter 04 배열
01 배열의 필요성
02 배열의 선언과 사용
   LAB 성적 평균 계산하기
   LAB 문자열 배열
   LAB 최대값과 최소값 구하기
   LAB 특정한 값 찾기
   LAB 주사위 던지기
   LAB 극장 예약 시스템
03 고급 배열
04 배열 정렬
05 2차원 배열
   LAB TIC-TAC-TOE 게임
   LAB 지뢰찾기 게임
   LAB 랜덤 워크
06 ArrayList
07 래그드 배열

Chapter 05 클래스, 객체, 메소드
01 객체 지향 프로그래밍이란?
02 객체 지향 프로그래밍의 특징
03 클래스 기초
   LAB 객체 생성과 사용
04 메소드
   LAB 자동차 클래스 작성하기
05 메소드 오버로딩
06 UML
07 String 클래스 사용
   LAB String클래스 활용

Chapter 06 클래스와 메소드 심층 탐구
01 접근 제어
02 접근자와 설정자
   LAB 안전한 배열 만들기
03 생성자
   LAB Television생성자
   LAB 상자를 나타내는 Box클래스 작성
04 생성자 오버로딩
   LAB 날짜를 나타내는 Date클래스 작성하기
   LAB 시간을 나타내는 Time클래스 작성하기
   LAB 원을 나타내는 Circle클래스 작성하기
05 다른 필드 초기화 방법
06 메소드로 객체 전달하고 반환하기
   LAB 배열에 저장된 값의 평균 구하기
   LAB 같은 크기의 Box인지 확인하기
07 직원 클래스 작성하기
08 내장 클래스
   LAB 내부 클래스의 사용예

Chapter 07 상속
01 상속의 개념
   LAB 동물 예제
   LAB 도형 예제
02 상속과 접근 제어
   LAB 직원과 매니저 클래스 작성하기
03 메소드 오버라이딩
   LAB 다양한 이자율을 가지는 은행 클래스 작성하기
04 상속과 생성자
   LAB 복잡한 상속 계층 구조 만들어보기
05 추상 클래스란?
06 상속과 다형성
   LAB 동적 메소드 호출 실습하기
07 Object클래스
08 IS-A관계와 HAS-A관계
09 종단 클래스와 정적 메소드 재정의

Chapter 08 그래픽 사용자 인터페이스
01 그래픽 사용자 인터페이스
02 컨테이너
03 GUI작성 절차
04 기초 컴포넌트들
   LAB 온도 변환기 작성하기
   LAB 피자 주문 화면 작성하기
05 배치 관리자
   LAB FlowLayout 배치 관리자 실습하기
   LAB 계산기 화면 작성하기
   LAB 화면에 난수 표시하기

Chapter 09 인터페이스, 람다식, 패키지
01 인터페이스의 개요
   LAB 자율 주행 자동차
   LAB 객체 비교하기
02 인터페이스를 자료형(타입)으로 생각하기
   LAB 타이머 이벤트 처리
03 인터페이스를 이용한 다중 상속
04 디폴트 메소드와 정적 메소드
05 무명 클래스
06 람다식
   LAB 람다식을 이용한 타이머 이벤트
07 함수 인터페이스와 람다식
08 패키지란
   LAB 패키지 생성하기
09 패키지 사용
10 소스 파일과 클래스 파일 관리(이클립스)
11 소스 파일과 클래스 파일 관리(명령어)
12 자바 가상 머신은 어떻게 클래스 파일을 찾을까?
13 JAR압축파일
14 자바에서 지원하는 패키지

Chapter 10 이벤트 처리
01 이벤트 구동 프로그래밍
02 이벤트 처리 방법
   LAB 키패드 만들기
   LAB 퍼즐 게임 작성하기
   LAB 가위 바위 보 게임
03 스윙 컴포넌트의 이벤트
04 액션 이벤트
05 키 이벤트
   LAB 자동차 게임
   LAB 신호등 작성하기
06 Mouse와 MouseMotion이벤트
   LAB 화면에 사각형 그리기
   LAB 마우스로 그림 그리기
07 어댑터 클래스
   LAB 카운터 작성하기
   LAB 슬롯 머신 작성하기
   LAB TIC-TAC-TOE게임 작성하기

Chapter 11 그래픽 프로그래밍
01 자바에서의 그래픽
02 그래픽 프로그래밍의 기초
03 기초 도형 그리기
   LAB 프랙탈로 나무 그리기
04 색상(Color)
05 폰트(Font)
06 이미지 출력
   LAB 이미지 나누어서 그리기
   LAB 영상처리
07 Java 2D
   LAB 애니메이션 작성하기
   LAB 베지어 곡선 그리기
   LAB 2차 함수 그리기

Chapter 12 스윙 컴포넌트
01 스윙 컴포넌트에 이미지 표시하기
02 체크 박스
03 라디오 버튼
04 텍스트 필드
05 텍스트 영영
06 콤보 박스
07 슬라이더
08 파일 선태기
   LAB 피자 주문 화면 만들기
   LAB 화면 캡처 프로그램
   LAB 한글-영문 번역기 작성하기

Chapter 13 실전 프로젝트 #1: 다양한 프로그램 작성
   LAB 계산기 작성
   LAB TIC-TAC-TOE 게임
   LAB 미니 탁구 게임

Chapter 14 오류 처리하기
01 디버깅
02 예외처리
03 예외처리
04 예외와 메소드
   LAB 예외 처리하기
05 예외 생성하기
06 예외 처리의 장점
   LAB 예외 처리하기
07 단언
08 로깅

Chapter 15 제네릭과 컬렉션
01 제네릭 클래스
   LAB SimplePair클래스 작성하기
02 제네릭 메소드
   LAB swap()제네릭 메소드 작성
   LAB printArray()제네릭 메소드 작성하기
03 한정된 타입 매개 변수
04 제네릭과 상속
05 와일드 카드
06 컬렉션
07 Collection인터페이스
08 ArrayList
09 LinkedList
10 Set
11 Queue
12 Map
13 Collections클래스
   LAB 영어사전 작성하기
   LAB 카드 게임 작성하기

Chapter 16 멀티 스레딩
01 스레드의 개요
02 스레드 생성과 실행
03 람다식을 이용한 스레드 작성
   LAB 자동차 경주 게임 작성
04 스레드 활용
05 동기화
06 스레드간의 조정
   LAB 슈팅 게임 작성하기
   LAB 공 움직이기

Chapter 17 파일 입출력
01 파일과 스트림
02 바이트 스트림
   LAB 이미지 파일 복사하기
03 문자 스트림
04 스트림 결합하기
05 DataInputStream과 DataOutputStream클래스
06 텍스트 저장하기
07 압축 파일 풀기
08 객체 저장하기
09 파일 정보를 얻으려면
   LAB ZIP 압축파일 풀기
   LAB 시저 암호 프로그램 작성하기
   LAB 행맨 게임 작성하기
   LAB 이미지 파일에서 RGB 값 구하기

Chapter 18 네트워크 프로그래밍
01 네트워크 프로그래밍의 기본 개념
02 웹으로부터 파일 다운로드하기
03 TCP, UDP, 포트, 소켓
04 서버와 클라이언트 제작
   LAB 영어 번역 서버 작성하기
   LAB TIC-TAC-TOE 네트워크 게임 만들기
05 UDP를 이용한 통신
06 UDP를 이용한 서버와 클라이언트 작성하기
   LAB 웹에서 이미지 파일 다운로드하기

Chapter 19 데이터베이스 프로그래밍
01 자바와 데이터베이스
02 데이터베이스의 기초
03 SQL
04 JDBC를 이용한 프로그래밍
05 Prepared Statements 사용하기
   LAB 데이터베이스 레코드 뷰어 작성
   LAB 데이터베이스로 게임 기록 저장하기

Chapter 20 실전 프로젝트 #2: 갤러그 게임 제작하기
01 "갤러그"게임
02 어떤 객체들이 필요한가?
03 JAR압축 파일
천리길도 한 걸음부터!

프로그램을 공부하는 학생들에게 자바는 큰 산과 같다. 도무지 공부해 낼 수 없을 것 같은 언어이지만, 좋은 학습서가 있다면 이야기는 달라질 것이다. 아래의 문제들을 보자.

-주사위 던지기
-극장 예약 시스템
-지뢰찾기 게임
-TIC-TAC-TOE 게임
-같은 크기의 BOX인지 확인하기
-다양한 이자율을 가지는 은행 클래스
-피자 주문 화면 작성하기
-웹에서 이미지 파일 다운로드하기
-영어 번역 서버 만들어보기
-갤러그 게임 제작하기

자바의 다양한 문법들이 위의 예제나 LAB과 함께 설명되어진다. 하나의 문제를 풀어갈수록 실제로 나의 실력이 되는 진짜 JAVA책을 만나보자.