JAVA

[OOP] package와 import

2023. 3. 7. 22:31
목차
  1. 패키지(package)
  2. 패키지의 선언
  3. import문
  4. import문의 선언
  5. static import문

패키지(package)

서로 관련된 클래스와 인터페이스의 묶음

 

  • 클래스의 실제 이름은 패키지명을 포함(String 클래스의 실제 이름은 java.lang.String)
  • 클래스가 물리적으로 하나의 클래스파일(.class)인 것과 같이 패키지는 물리적으로 하나의 디렉터리이다.

 

- 하나의 소스파일에는 첫 번째 문장으로 단 한 번의 패키지 선언만을 허용한다.
- 모든 클래스는 반드시 하나의 패키지에 속해야 한다.
- 패키지는 점(.)을 구분자로 하여 계층구조로 구성할 수 있다.
- 패키지는 물리적으로 클래스 파일(.class)을 포함하는 하나의 디렉터리이다.

 

 

패키지의 선언

package 패키지명;

패키지명은 대소문자를 모두 허용하지만, 클래스명과 쉽게 구분하기 위해서 소문자로 하는 것을 원칙으로 한다.

패키지가 선언되지 않은 클래스는 자동적으로 '이름 없는 패키지(unnamed package)'에 속한다.

 

 

클래스패스(classpath)

클래스패스는 클래스파일(.class)를 찾는 경로이다.

  • 구분자는 ;이고 여러 개의 경로를 클래스패스에 지정할 수 있다.
  • 클래스패스를 지정해 주지 않으면 기본적으로 현재 디렉터리(.)가 클래스패스로 지정되지만 클래스 패스를 지정하면 현재 폴더(.)도 함께 추가해주어야 한다.

 

import문

  • 사용할 클래스가 속한 패키지를 지정하는 데 사용한다.
  • import문을 사용하면 클래스를 사용할 때 패키지명을 생략할 수 있다.

 

import문의 선언

패키지문 다음, 클래스 선언문 이전에 위치해야 한다.

import문은 한 소스파일에 여러 번 선언할 수 있다.

import 패키지명.클래스명;
	or
import 패키지명.*;

*은 해당 패키지에 속한 모든 클래스명을 나타낸다. import문은 컴파일 시에 처리되므로 이 둘은 실행 시 성능상의 차이는 없다.

 

import문에서 클래스의 이름 대신 *을 사용하는 것이 하위 패키지의 클래스까지 포함하는 것은 아니다.

import java.util.*;
import java.text.*;

위 두 문장 대신 아래와 같이 할 수 없다.

import java.*;

 

System이나 String과 같은 java.lang 패키지의 클래스들은 매우 빈번히 사용되는 중요한 클래스들이 속한 패키지이기 때문에 모든 소스파일에 묵시적으로 아래와 같은 import;문인 선언되어 있다.

import java.lang.*;

 

 

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.ourt을 out만으로 참조가능

System.out.println(Math.random()); -> out.println(random());

 

'JAVA' 카테고리의 다른 글

[OOP] 다형성(polymorphism)  (0) 2023.03.08
[OOP] 제어자(modifier)  (0) 2023.03.07
[OOP] 오버라이딩(overriding)  (0) 2023.03.06
[OOP] 상속(inheritance)  (0) 2023.03.06
[OOP] 변수의 초기화  (0) 2023.03.04
  1. 패키지(package)
  2. 패키지의 선언
  3. import문
  4. import문의 선언
  5. static import문
'JAVA' 카테고리의 다른 글
  • [OOP] 다형성(polymorphism)
  • [OOP] 제어자(modifier)
  • [OOP] 오버라이딩(overriding)
  • [OOP] 상속(inheritance)
ewok
ewok
ewok
기록장
ewok
전체
오늘
어제
  • 분류 전체보기
    • 웹개발 교육
      • HTML
      • CSS
      • JavaScript
      • Database
      • Java
      • jQuery
      • Ajax
      • Bootstrap
      • jsp
      • Spring
      • MyBatis
      • 프로젝트
    • JAVA
    • SpringBoot
      • 기초
      • AWS
      • 개인프로젝트
    • Spring Security
    • JPA
    • 테스트코드
    • Error
    • CS
      • 컴퓨터 구조
      • 이산수학
    • 알고리즘
      • 정리
      • Java
    • SQL
    • 자격증
      • SQLD
      • 정보처리기사
    • Git

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • sqld 자격증
  • GIT
  • base
  • git bash
  • branch
  • 버전 관리
  • merge commit
  • sqld 합격
  • this
  • 노랭이
  • org.hibernate.tool.schema.spi.CommandAcceptanceException
  • 브랜치
  • org.springframework.beans.factory.UnsatisfiedDependencyException
  • SQLD
  • 생성자

최근 댓글

최근 글

hELLO · Designed By 정상우.
ewok
[OOP] package와 import
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.