패키지
자바에서 패키지란 클래스들을 구분짓는 폴더같은 개념이다.
해당 패키지의 가장 상위 디렉터리, 즉 root 디렉터리에서 실행을 해야한다는 약속이 있다.
제약사항
- 소스의 가장 첫 줄에 있어야 한다.
- 패키지 선언은 소스 하나에 하나만 있어야 한다.
- 패키지 이름과 위치한 폴더 이름이 같아야 한다.
패키지 기본 규칙
패키지 시작 이름 | 내용 |
java | 자바 기본 패키지 ( JAVA 벤더에서 개발 ) |
javax | 자바 확장 패키지 ( JAVA 벤더에서 개발 ) |
org | 일반적으로 비 영리 단체(오픈소스)의 패키지 |
com | 일반적으로 영리단체(회사)의 패키지 |
자바패키지 이름지정시 유의사항
- 패키지 이름은 모두 소문자로 지정해야한다.
- 자바의 예약어를 사용하면 안된다.(ex. int, static)
import
다른 패키지에 있는 클래스를 참조할 때 사용되며 import 패키지이름.클래스이름 라고 명시하면 그 패키지에 있는 클래스를 사용하겠다는 것을 컴파일러에게 알려준다.
해당 패키지에 선언된 모든 클래스를 import하려면 import 패키지이름.* 이라고 명시한다
- import static
- 다른 패키지의 static 변수나 static 메소드를 사용할 때
- 만약, import해서 static 메소드나 변수가 중복되면 자신의 클래스에 있는 static이 우선이다.
- import 하지 않아도 되는 패키지
- java.lang 패키지
- 같은 패키지
접근제어자
해당 클래스 안에서 | 같은 패키지에서 | 상속받은 클래스에서 | Import한 클래스에서 | |
public | O | O | O | O |
protected | O | O | O | X |
(package-private) | O | O | X | X |
private | O | X | X | X |
- public : 누구나 접근할 수 있도록 할 때 사용
- protected : 같은 패키지 내에 있거나 상속받은 경우에만 접근 가능
- package-private : 아무런 접근 제어자를 적어주지 않을 때. 같은 패키지 내에 있을 때만 접근할 수 있다.
- private : 해당 클래스 내에서만 접근 가능