패키지란?
- 윈도우에서 폴더(Folder), 리눅스에서의 디렉토리(Directory)에 해당하는 개념이다.
- 자바에서 클래스 파일들을 모아놓는 공간이며, 물리적으로는 폴더와 동일하다.
--> 서로 다른 패키지에는 같은 이름의 클래스가 각각 존재할 수 있다. (즉, 중복이 가능하다)
하지만 하나의 패키지에는 같은 이름의 클래스가 중복될 수 없다.
- 자바에서 패키지를 생성하면, 실제 물리적인 폴더가 생성된다.
만약 패키지를 생성을 생략한다면, 물리적 폴더가 존재하지 않는 default package가 생성된다.
- 특정 클래스 파일은 하나의 패키지에만 소속되어야 한다.
- 원칙적으로 클래스에 접근하는 방법은 패키지명과 클래스명을 동시에 지정하여 접근한다.
--> 패키지명.클래스명 형태로 지정
--> 만약 패키지가 계층 구조로 이루어져 있을 경우에는 '상위패키지명.하위패키지명.클래스명' 형태로 지정한다.
단, java.lang 패키지는 기본적으로 포함되는 유일한 패키지 이므로
java.lang 패키지 내의 클래스는 클래스명만으로 접근 가능하다.
- 실제 폴더 구조처럼 상위, 하위로 구분하여 패키지를 작성한다. 이때, 패키지 이름이 중복될 수 있으므로 도메인네임을 사용하여 패키지명을 지정한다.
--> 단, 도메인 네임을 역순으로 지정하여 포괄적인 이름이 상위패키지명이 되도록 한다.
ex) google.co.kr의 경우 kr.co.google로 패키지명을 설정한다.
package문(키워드)
- 특정 클래스 파일의 첫번째 라인에 해당클래스가 소속된 패키지를 명시하는데 사용된다.
--> 주석을 제외한 소스코드에서 가장 먼저 실행되어야 하는 코드
- 실제 클래스 파일이 위치한 패키지와 지정된 위치가 다를 경우 오류가 발생한다.
- 클래스 파일 내에서 단 한번만 사용 가능하다.
- default package에 위치한 클래스 실제 패키지가 없으므로 package문을 생략한다.
✍
java.lang.String str = "패키지";
--> 원래는 이렇게 패키지명을 적어주는 게 맞다. 하지만 java.lang 패키지는 유일하게 클래스명 만으로 접근 가능하다.
✍
package test; // 패키지 명
public class test6 {
public static void main(String[] args) {
java.util.Scanner sc; // 패키지 문
}
}
--> 스캐너 객체를 사용하려면 패키지문을 추가하거나 import문을 사용하여야 한다. 위의 코드는 패키지문을 사용했다.
java.util 이라는 패키지 문 !
'개발 > Java' 카테고리의 다른 글
[Java] static (0) | 2023.01.29 |
---|---|
[Java] import문 (0) | 2023.01.28 |
[Java] 참조형 변수 (0) | 2023.01.26 |
[Java] 가변인자를 사용한 메서드 오버로딩 연습문제 (0) | 2023.01.23 |
[Java] 배열을 이용하여 메서드 출력하기 (0) | 2023.01.23 |