1. 패키지(Package)


# 패키지란, 서로 관련있는 클래스나 인터페이스의 파일들을 한 곳에 묶어 관리하는 것이다. 


1) 경로

- Window: C:\Program Files\Java\jdk1.X.X_XXX\jre\lib\rt.jar

- Mac OS: /Library/Java/JavaVirtualMachines/jdk1.8.0_151.jdk/Contents/Home/jre/lib/rt.jar

* JDK 표준 패키지 파일 


2) import문


# 다른 클래스의 메소드나 속성을 참조할 때, 명시적으로 표현하기 위해서 사용하는 것이다. 


1) java.util.Scanner sc = new java.util.Scanner(System.in);

- Scanner를 사용할 때마다 패키지명을 작성하는 번거로움을 덜기 위한 'import java.util.Scanner;' 를 제공 


2) import java.util.Scanner: 이하 Scanner 구문을 사용하겠다. 

3) import java.util.* 

- 한 패키지의 여러 클래스를 import할 경우, *을 사용해서 한 번에 선언이 가능하다. 

- 패키지 안에 있는 모든 클래스를 사용할 수 있지만, 

무엇을 사용하기 위해 불렀는지 확인하기 어렵기 때문에 권장하지는 않는다. 



2. java.lang.Object 


# Object 클래스는 모든 클래스의 최상위 클래스이다. 


1) class Toy /* extends Object */ {}

- extends 키워드를 선언하지 않아도 자바로 개발된 모든 클래스들은 최상위 클래스인 Object를 기본적으로 상속하고 있다. 


2) Scanner의 java.util.Scanner; 와 달리 Object는 클래스임에도 불구하고 import문을 따로 작성하지 않는다.

그 이유는 Object가 있는 java.lang 패키지를 자주 사용하기 때문에 자체 저장이 되어있어 import문을 작성하지 않아도 사용가능하다. 


3) 주요 메서드 

(1) toString()

- 본래 객체의 주소값을 '문자열'로 반환하도록 설계되어 있다.

그러나 주로 객체 내의 더 중요한 정보를 출력하기 위해서 오버라이딩(재정의)하여 사용하는 경우가 더 일반적이다. 


# 클래스들의 미리 오버라이딩 해놓은 toString() 메서드 예시 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
package objectex;
 
import java.util.Date;
 
/* 몇몇 클래스들은 라이브러리 차원에서 
 * 미리 toString() 메서드를 오버라이딩(재정의) 해놓음*/
 
class Toy /*extends Object*/ {}
 
public class ObjectTest02 {
    public static void main(String[] args) {
        
        Toy myToy = new Toy();
        System.out.println("Toy class: " + myToy);
        System.out.println("Toy class: " + myToy.toString());
 
        String str = "java";
        System.out.println("String: " + str.toString());    
        
        Date d = new Date();
        System.out.println("Date: " + d.toString());    
        
    }
}
 
# 실행 결과 
Toy class: objectex.Toy@3d012ddd
Toy class: objectex.Toy@3d012ddd
String: java
Date: Tue Jan 16 23:54:26 KST 2018
cs


# 새로 만든 클래스 안에서의 toString() 오버라이딩

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
package objectex;
 
class Book /*extends Object*/ {
    
    String title;
    int price;
    
    public Book() {}
    public Book(String title, int price) {
        this.title = title;
        this.price = price;
    }
    
    @Override
    public String toString() {
        return title + ": " + price;
    }
}
 
public class ObjectTest03 {
    public static void main(String[] args) {
 
        Book b1 = new Book("해리포터"8000);
        Book b2 = new Book("반지의제왕"12000);
        
        System.out.println(b1);    
        System.out.println(b2); 
        
    }
}
 
# 실행 결과 
해리포터: 8000
반지의제왕: 12000
cs



(2) equals()


# Object 클래스에 선언된 메소드와 설명 




3. 이클립스 상에서 API 소스 확인하기 


# 인터넷이 연결되지 않아도 API 소스를 확인할 수 있다. 


1) 오프라인 

(1) ctrl + 클래스 또는 메서드 선택

(2) Attach Source

(3) External location - External File

(4) Program Files - Java - JDK - src.zip


2) 온라인

(1) 클래스 영역지정 + shift + F2