<패키지>
서로 관련된 클래스와 인터페이스에 컴파일 된 파일들을 하나의 디렉터리에 묶어놓은 것
<모듈>
- 여러 패키지와 이미지등의 자원을 모아 놓은 컨테이너
- jdk 9부터 자바 API 모든 클래스들을 패키지 기반에서 모듈들로 완전히 재구성
- 응용프로그램 역시 여러개의 모듈로 분할하여 작성 가능
- 클래스들을 패키지로 만들고, 다시 패키지를 모듈로 만듦
<패키지명과 경로명>
- 점(.)으로 연결
--> Project.FileIO.class
--> Project.UI.Tools.class
<패키지 사용하기>
다른 패키지에 작성된 클래스 사용
- import 이용하지 않는 경우
소스 내에서 패키지 이름과 클래스 이름의 전체 경로명을 써줘야함
-import를 이용하는 경우
- 소스의 시작부분에 사용하려는 패키지 명시(소스에는 클래스 명만 명시하면 됨)
- 특정 클래스의 경로명만 포함
예) import java.util.Scanner;
- 패키지 내의 모든 클래스 포함
예)import java.util.*;
<import문>
패키지의 경로를 미리 컴파일러에게 알려주는 문장
import패키지 이름.클래스;
또는
import 패키지이름.*;
*주의 사항
import com.hankuk.*; -->com.hankuk 패키지에 포함된 모든 클래스
import com.hankuk.people.*; -->com.hankuk.people 패키지에 포함된 모든 클래스
정적 import문 | 클래스 이름 없이 멤버 사용가능 |
일반적인 import문 | 클래스 이름과 함께 필드 사용 |
<패키지 선언>
package 패키지명;
- 컴파일한 클래스 파일을 패키지명의 디렉터리에 저장하라는 지시
- 소스파일의 첫줄에 선언
- 주석을 제외하고 맨 첫번째 줄에
- 소문자로 쓰는게 관례
<패키지 선언 예시>
클래스이름.클래스이름
클래스 이름은 확장자를 쓰지 않아야! .(java 쓰지 않아야함)
예시)
package UI; //Tools 클래스를 컴파일하여 UI 패키지에 저장할 것을 지시
public class Tools{ // 클래스의 경로명이 UI.Tools가 됨
}
- 다른 클래스에서 Tools 클래스 사용하기 위해서는 import UI.Tools 이용
package Graphic;
import UI.Tools;
public class Line{
public void draw();
Tools t=new Tools();
}
}
<디폴트 패키지와 패키지의 특징>
-디폴트 패키지
-package 선언문 없이 만들어진 클래스이 패키지
- 디폴트 패키지는 현재 디렉터리
- 패키지의 특징
- 패키지의 계층구조
: 관련된 클래스 파일을 하나의 패키지로 계층화하여 관리 용이
- 패키지 별 접근 제한
: 패키지 별로 접근 권한 가능
- 동일한 이름의 클래스와 인터페이스 사용가능
: 서로 다른 패키지에 이름이 같은 클래스와 인터페이스 존재 가능
- 높은 소프트웨어 재사용성
'Java > 기초' 카테고리의 다른 글
[java기초] 제네릭 프로그래밍 (0) | 2021.07.02 |
---|---|
[java기초] 모듈과 기본패키지 (0) | 2021.07.02 |
[java 기초] 인터페이스와 다형성 (0) | 2021.06.30 |
[java기초] 인터페이스 (0) | 2021.06.30 |
[java기초] 추상 메서드 (0) | 2021.06.30 |
댓글