Package
Java의 Package는 비슷한 성질을 가진 Class들의 집합이고 Class는 여러 비슷한 성질을 가진 Field와 method의 집합이다.
#Math는 수학 기능을 가진 Class 이므로 반올림, 내림, 파이 등등을 할 수 있다.
Instance
PrintWriter p1 = new PrintWriter("result 1");
p1.write("hello 1");
p1.write("title 1");
p1.close();
PrintWriter("result 1") PrintWriter라는 클래스를 new를 통해 복제해 instance를 만든다.
이 instance를 p1이라는 변수에 담는데 다른 정보가 섞이면 안되므로 앞에 PrintWriter을 적어 표시해준다.
이를 통한 결과는 p1이라는 변수는 result.txt 파일은 내장하게 된다.
Instance를 사용하는 이유
PrintWriter.write("result 1.txt" "hello 1")
PrintWriter.write("result 1.txt" "title 1")
PrintWriter.write("result 2.txt" "hello 2")
PrintWriter.write("result 1.txt" "article 1")
PrintWriter.write("result 3.txt" "hello 3")
PrintWriter.write("result 2.txt" "title 2")
PrintWriter.write("result 4.txt" "hello 4")
Instance 없이 예시와 같이 사용하게 되면 매우 비효율적이다.
1. 작업시 저 코드들을 일일이 다 쳐야하기 때문에 시간이 오래 걸린다.
2. 정보가 한 눈에 들어오지 않아 어디에 내용을 추가 혹은 수정해야할지 찾기 힘들다
3. 여러가지 작업을 하는 경우 혹은 한 파일에 많은 정보가 들어가야 하는 일이 많은데
예시와 같은 방식으론 불가능에 가깝다.
Inheritance
클래스에는 상속 개념이 있는데
새로운 클래스를 만들 때 처음부터 모두 만들기는 쉽지 않기 때문에
부모 클래스의 method들을 상속 받고 (extend) 새로운 걸 추가하고 수정해 새 클래스가 만들어진다.
상속 관계에 있는 클래스들은 서로 method를 공유한다.
#Object의 method toString은 자식 클래스인 Write와 PrintWriter에서도 역시 동작한다.
*Java는 PrintWriter에서 toString을 찾고 없으면 Writer을 보고 그래도 없으면 Object에서 찾는다.