패키지 (package) 

서로 관련된 클래스의 묶음이다.

같은 이름의 클래스 일지라도 서로 다른 패키지에 존재하면 충돌이 안일어난다.

클래스의 실제 이름(full name)은 패키지를 포함한다.(java.lang.String) 

 

패키지 선언 

패키지는 소스파일의 첫 번째 문장으로 단 한번 선언  =>  packge 패키지명;

같은 소스파일의 클래스들은 모두 같은 패키지에 속하게 된다. 

패키지 선언이 없으면 이름없는 (unnamed)패키지에 속하게 된다. (default package) 

 

*bin폴더 - 컴파일된 클래스 파일(*.class)이 있는 곳 

*src폴더 - 소스파일(*.java)이 있는 곳 

 

클래스 패스 (classpath)

클래스 파일(*.class)의 위치를 알려주는 경로 (path) 

환경변수 classpath로 관리하며, 경로간의 구분자는 ';'를 사용

classpath(환경변수)에 패키지의 루트를 등록하는 방법

제어판 > 검색창에 환경변수 검색 > 시스템 환경변수 편집 > 시스템 속성 > 고급 > 환경변수 > 새로만들기 > classpath > 패키지 주소를 복사하여 붙여넣기! 

> 위 내용은 이클립스가 자동으로 해주기 때문에 읽어보기만 하자

 

import문

클래스 사용할 때 패키지 이름을 생략할 수 있다. (ctrl + shift + o   (import문 자동 단축키 자주쓰인다.) )

java.lang 패키지의 클래스는 import하지 않고도 사용할 수 있다. (String, Object , System, Thread .....)

 

import문 선언 

import 패키지명.클래스명;    또는 import 패키지명.* ; (*은 모든 클래스) 

import문은 패키지문과 클래스 선언의 사이에 위치 (패키지 선언, import문 , 클래스 정의 순으로)  

import 문은 컴파일 시 처리되므로 프로그램의 성능에 영향 X 

이름이 같은 클래스가 속한 두 패키지를 import할 때 클래스 앞에 패키지명을 붙여줘야 한다. 

 

import java.util.* ;

import java.text.*; 

이 두개를 import java.*; 이렇게 사용 불가! import java.*; 은 java 패키지의 모든 클래스 (패키지는 포함 X ) 

 

static import 문 

- static멤버 사용할 때 클래스 이름을 생략할 수 있게 해준다. 

import static java.lang.Integer.*;            // Integer클래스의 모든 static 메서드

import static java.lang.Math.random;      // Math.random()만 괄호 안붙임

import static java.lang.System.out;         // System.out을 out만으로 참조가능

 

System.out.println(Math.random());  ========>  out.println(random());   //static import문으로 클래스 이름 생략함

 

static import 문은 꼭 필요할 때만 사용!