본문 바로가기
Java/기초

[java기초] 패키지

by Meaning_ 2021. 7. 2.
728x90
반응형

<패키지>

서로 관련된 클래스와 인터페이스에 컴파일 된 파일들을 하나의 디렉터리에 묶어놓은 것

 

 

 

<모듈>

- 여러 패키지와 이미지등의 자원을 모아 놓은 컨테이너

- 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 선언문 없이 만들어진 클래스이 패키지

- 디폴트 패키지는 현재 디렉터리

 

- 패키지의 특징

 

- 패키지의 계층구조

: 관련된 클래스 파일을 하나의 패키지로 계층화하여 관리 용이

 

- 패키지 별 접근 제한

: 패키지 별로 접근 권한 가능

 

- 동일한 이름의 클래스와 인터페이스 사용가능

: 서로 다른 패키지에 이름이 같은 클래스와 인터페이스 존재 가능

 

- 높은 소프트웨어 재사용성 

 

728x90
반응형

'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

댓글