자바에서의 디렉토리 개념이다. 파일 처럼 계층적 구조를 가지고 있다.
보통 비슷한 성격을 가진 클래스를 같은 패키지에 둔다.
패키지는 다른 패키지와 구분된다. 같은 이름을 가진 클래스여도 패키지가 다르다면 서로 구분된다.
클래스 최상단에 package
키워드로 패키지 경로를 지정할 수 있다.
package com.pond.ws;
public class StudyHalle{
...
}
다른 패키지의 소스를 쉽게 사용할 수 있게 해준다.
자바의 기본 클래스를 제공하는 java.lang 패키지는 import
없이도 바로 사용할 수 있다.
코드 상단에 import
키워드를 사용하면 패키지 명을 생략할 수 있다.
*
를 사용하면 하위 클래스에 모두 접근 가능하다.
package com.pond.ws;
import java.util.ArrayList;
import java.util.List;
import java.util.*;//*를 이용하여 모든 util 패키지에 접근 가능하다.
public class StudyHalle{
java.util.List list1 = new java.util.ArrayList();//패키지 경로를 명시
List list2 = new ArrayList();//import를 이용
}
import static
를 이용하면 인스턴스 생성 없이 메소드나 필드를 바로 이용할 수 있다.
import static java.lang.Math.*;
public class StudyHalle{
Double pi1 = Math.PI;
Double pi2 = PI;//인스턴스 없이 바로 사용이 가능하다.
int min1 = Math.min(1,2);
int min2 = min(1,2);
}
하지만 클래스 내에 동일한 필드나 메소드가 정의되어 있다면 Math함수가 아니라 정의한 필드나 메소드를 참조한다.
클래스가 위치하고 있는 디렉토리 경로이다.
JVM이 바이트코드 파일(.class)을 찾을때 사용한다.
환경변수 CLASSPATH를 이용하거나 -classpath
옵션으로 클래스 패스를 지정할 수 있다.
운영체제에서 지정하는 환경변수 중 하나이다.
CLASSPATH 환경변수를 지정하면 실행할 때 마다 클래스 패스를 지정하지 않아도 된다.
-classpath
옵션java
의 -classpath
을 통해 클래스패스를 지정할 수 있다.
java -classpath "클래스패스"
외부에서의 직접적인 접근을 막기 위해 사용한다.
캡슐화를 위해 외부에서의 객체의 직접 접근을 private으로 막고 public 메서드를 생성하여 간접적으로 접근하도록 한다.
접근지시자를 별도로 지정하지 않으면 default 접근 제어를 가진다.
4개의 접근 제어자가 있다.
public
: 객체를 사용하는 프로그램 어디서든 접근이 가능하다.private
: 외부에서 접근할 수 없다.default
: 같은 패키지에 속하는 멤버만 접근 가능하다.protected
: 부모 클래스에 대해서는 public 멤버처럼 취급되며 외부에서는 private 속성을 가진다.