09 package import

패키지

○ 클래스의 묶음

클래스 또는 인터페이스를 포함시킬 수 있음

서로 관련된 클래스들끼리 그룹 단위로 묶어 놓아 클래스 관리 효율적

 

○ 같은 이름의 클래스라도 패키지가 다르면 다른 클래스!

클래스의 실제 이름은 패키지명도 포함되는 것!

 

○ 물리적으로 하나의 디렉토리

클래스도 물리적으로 하나의 클래스 파일임(.class)

어떤 패키지에 속한 클래스는 해당 디렉토리에 존재하는 클래스 파일이어야 함

패키지도 다른 패키지를 포함할 수 있음(구분 ‘ . ())

 

○ 패키지의 특징

1)    하나의 소스파일에는 첫 번째 문장으로 단 한 번의 패키지 선언만을 허용

2)    모든 클래스는 반드시 하나의 패키지에 속해야 함

3)    패키지는 점(.)을 구분자로 하여 계층구조로 구성할 수 있음

4)    패키지는 물리적으로 클래스파일을 포함하는 하나의 디렉토리

 

패키지의 선언

○ 클래스나 인터페이스의 소스파일에 “package 패키지명;” 적어줌

패키지 선언문은 반드시 소스파일에서 주석과 공백을 제외한 첫 번째 문장이어야 함

하나의 소스파일에 단 한번 선언될 수 있음

패키지명은 소문자로 적는 것이 원칙

 

○ 이름 없는 패키지(unnamed package)

모든 클래스는 반드시 하나의 패키지에 포함되어야 함

소스파일 작성할 때 패키지 선언 안하고 사용할 수 있는 것은 이름 없는 패키지 덕분

소스파일에 자신이 속할 패키지를 지정하지 않은 클래스는 자동적으로 ‘이름 없는 패키지’에 속하게 됨

결국 소스 파일은 패키지에 속한 샘이 되는 것

 

● import

○ 컴파일러에게 소스파일에서 사용된 클래스의 패키지에 대한 정보를 제공

소스 코드 작성 시 다른 패키지의 클래스 사용하려면 패키지명이 포함된 클래스 이름을 전부 사용해야 함

클래스의 코드 작성 전 import문으로 사용하고자 하는 클래스의 패키지를 미리 명시해줌

명시해주면 클래스명을 패키지까지 포함해서 쓰지 않아도 됨

 

import문은 프로그램 성능에 전혀 영향을 미치지 않음

 

import문의 선언

■ package문 다음, 클래스 선언문 이전에 위치

일반적인 소스파일(*.java)의 구성 순서

(1)   package

(2)   import

(3)   클래스 선언

■ import문 선언 방법

import 패키지명.클래스명 ;

import 패키지명. * ;

클래스의 이름 대신 *를 사용하기도 함

한 패키지의 여러 클래스 사용하는 경우는 *을 사용해 모든 클래스를 import

하위 패키지의 클래스까지 포함하지는 않음

마지막 패키지의 모든 클래스를 대표하는 것!

import java.util. * ; (가능)

import java. * ; (불가능)

■ System이나 String같은 java.lang 패키지의 클래스들은 모든 소스파일에 묵시적으로 import되어 있는 것

 

static import

■ static 멤버를 호출할 때 클래스 이름을 생략할 수 있음

특정 클래스의 static멤버를 자주 사용할 때 편리, 코드 간결

import static java.lang.Integer. * ; // Integer 클래스의 static 메서드

import static java.lang.Math.random; // Math.random(). 괄호 없이 사용

import static java.lang.System.out; // System.out out 만으로 참조 가능

이렇게 선언해 둔다면 아래 메서드가 간단해 짐

System.oyt.println(Math.random());

→ out.println(random());

 

'JAVA > 이론' 카테고리의 다른 글

[java][이론] 011 다형성  (0) 2020.08.06
[java][이론] 010 제어자  (0) 2020.07.08
[java][이론] 008 상속  (0) 2020.07.06
[java][이론] 007 생성자와 변수의 초기화  (0) 2020.07.04
[java][이론] 006 변수와 메서드  (0) 2020.07.02

+ Recent posts