Good Java / 우재남
역시 한국사람이 지은 책이어서 읽기가 편안했습니다. 번역은 가끔 발로한 것들이 있어서..^^
오랫만에 Java 프로그래밍 책을 잡으니 감회가 세로웠습니다.
사실 프로그래밍 언어를 이것 저것 배우고 할줄 알고 있어서 어렵게 생각되지는 않았습니다.
주요 개념과 방법은 전부터 알고 있었고 가벼운 마음에서 보았기 때문이죠. 더욱이 번역서가 아니어서 그냥 죽~ 읽어 내려갔습니다.
예전에 C 프로그래밍을 생각하면서 쉽게 쉽게 책장을 넘겨 갔습니다.
객체지향 언어의 개념도 알고 있던 터라 어렵지는 않았네요...
단지 JAVA로 구체적인 구현방법에 대해서는 새롭게 느껴졌습니다.
그러면서도 신선하게 다가오는 (사소할 수도 있는) 내용이나 기억에 남기고 싶은 내용을 적어봤습니다.
처음 프로그래밍을 배우시는 분들은 하나 하나 따라가면서 연습하시기 좋은 책인 것 같습니다.
특히, 자세한 소스코드와 개념 설명을 위한 그림을 통해 이해하기 쉽게 친절하게 설명되어 있습니다.
이하 주요내용 입니다.
printf() method의 유형 :
%d : 정수형 %d , 100
%f : 실수형 %5.1f , 12345.6
%c : 문자형 %c , 'c'
%s : 문장형 %s , "itot"
(int) 12345,6 ==> 12345 ( (int)가 정수형으로 바꾸어준다)
예외 타입의 종류
Exception
-----------> ClassNotFoundException
-----------> IllegalAccessException
-----------> RunTimeException
----------> ArithmeticException
----------> NullPointerException
----------> IndexOutOfBoundsException
----------> ArrayIndexOutOfBoundsException
----------> StringIndexOutOfBoundsException
-----------> IOException
----------> EOFException
----------> FileNotFoundException
표준 입출력
입력 : System.in Scanner BufferedReader
출력 : System.out System.err
파일 입출력
입력 : FileInputStream BufferedReader FileReader
출력 : FileOutputStream BufferedWriter FileWriter
(Tip : 한글은 BufferedReader/Writer 사용이 용이 왜냐하면 2바이트 문자 스트림이기때문에...)
접근 제어 수식어별 접근 가능 여부
수식어 |
같은 클래스 |
같은 패키지 |
하위 클래스 |
외부 클래스 |
public |
o |
o |
o |
o |
protected |
o |
o |
o |
x |
default |
o |
o |
x |
x |
private |
o |
x |
x |
x |
생성자 : 클래스의 이름과 동일한 메소드를 말하며, 주로 인스턴스 생성시 초기값을 정해주기 위해 사용
메소드 오버로딩(Overloading) : 같은 클래스 내에서 메소드의 이름이 같아도 파라미터의 개수나 데이터 형식만 다르면 여러개를 선언 할 수 있는것 (생성자도 메소드 오버로딩 가능) 클래스를 활용 인스턴스 생성 시 초기 값 설정에 효과적임.ㅎ
인스턴스 변수와 클래스 변수
클래스 변수는 클래스 안에 공간이 할당되어 (인스턴스에는 공간이 없고) 여러 인스턴스에서 같이 사용하는 변수
static 키워드를 사용하여 생성
인스턴스 메소드와 클래스 메소드
클래스 메소드를 사용하면 클래스 변수에 직접 접근하지 않고 클래스 메소드를 이용하여 값을 바꿀 수 있다.
(다시말하면 혹시 모를 버그를 방지할 수 있다)
클레스의 상속
기존 클래스가 가지고 있는 필드와 메소드를 그대로 물려받은 새로운 클래스를 만드는 것
public으로 정의된 것만 상속됨 , private으로 정의된 것은 상속 안됨
protected로 정의된 것은 자신의 클래스 또는 패키지에서만 접근 가능(패키지는 클래스를 모아놓은 묶음)
extends 키워드를 사용
class Sedan extends Car {
}
생성자의 상속
수퍼 클래스의 생성자가 먼저 생성, 후 서브 클래스의 생성자 생성
오버라이딩
상위 클래스의 메소드를 하위 클래스에서 재정의 하는 것
메소드 오버라이딩의 제한 : final 키워드 사용
추상 클래스
직접 인스턴스를 생성할 수 없는 클래스
서브 클래스에서 상속 받은 후 서브 클래스에서 인스턴스 생성 가능
abstract 키워드 사용
추상 메소드
본체가 없는 빈껍데기 메소드로 서브 클래스에서 오버라이딩하여 사용하도록 하기 위해 사용
(무조건 오버라이딩해야함, 안하면 문법오류 발생)
메소드 앞에 abstract 키워드 사용
인터페이스
추상 클래스와 비슷하지만 인터페이스는 필드, 추상 메소드를 가질수 있고, 일반 메소드, 상생자는 가질 수 없다.
필드도 static final을 붙인 상수화한 필드만 사용가능하며 반드시 초기화 해야함.
implements 키워드 사용
다중상속
논리적으로 가능하나 JAVA는 다중상속 불가, 그러나 인터페이스를 이용하여 다중상속한 것으로 구현 가능.
'리뷰로그' 카테고리의 다른 글
심리학 백과 사전2 - 김문성 (0) | 2017.01.16 |
---|---|
애들러 상담이론 / 로버트 윌리엄 런딘 지음, 노안영,강만철,오익수,김광운,송한종 공역 (0) | 2017.01.15 |
자바 객체지향의 원리와 이해 - 김종민 (0) | 2017.01.09 |
빅데이터 마케팅 - 리사 아더/이홍섭 (0) | 2017.01.05 |
스티브 잡스 프레젠테이션의 비밀 (0) | 2016.12.28 |