Live-Study

[7주차] 패키지

youn12 2021. 2. 19. 16:12
✏️ Info.

- Java 패키지 학습

📋 List.

1. package 키워드
2. import 키워드
3. 클래스 패스
4. CLASSPATH 환경변수
5. -classpath 옵션
6. 접근 지시자


✔️ Content.

 

1. package 키워드

 

패키지란 서로 관련 있는 클래스 또는 인터페이스들을 묶어 놓은 묶음이다.

  • 물리적으로 하나의 디렉터리를 의미한다.
  • 하나의 패키지에 속한 클래스나 인터페이스 파일은 모두 해당 패키지 이름의 디렉터리에 포함되어 있다.
  • 다른 패키지를 포함할 수 있으며, 디렉터리 계층 구조는 점(.)으로 구분된다.
  • 규칙
    • 숫자로 시작해서는 안된다.
    • _, $를 제외한 특수문자 사용 금지
    • java로 시작하는 패키지는 자바 표준 API에서만 사용하므로 사용해서는 안된다.
    • 소문자로 작성하는 것이 관례
    • 도메인 이름이 있을 경우 패키지 이름은 도메인 역순으로 지어준다
      • (도메인) wony.com -> (패키지) com.wony

ex)

package me.studypackage;

 

FQCN(Fully Qualitied Class Name)

  • 모든 클래스에는 정의된 클래스 이름과 패키지 이름이 있다.
  • FQCN : 패키지 이름 + 클래스 이름
  • ex) String Class
    • 패키지 이름( java.lang ) + 클래스 이름( String ) = FQCN ( java.lang.String )

 

Built-in Package

  • Java Development Enviroment에 포함된 미리 작성된 라이브러리(패키지, 클래스)이다.
  • 많이 쓰는 패키지로 java.lang, java.util 등이 있다.

Package 종류

 


 

2. import 키워드

 

 * import : 다른 패키지에 있는 클래스를 참조하기 위해서는 import 구문을 사용해야 한다.

  • java.lang 패키지는 import 구문이 필요 없다.

ex) Junit Import

import org.junit.jupiter.api.Test;

 

3. 클래스 패스

 

*JVM 혹은 Java 컴파일러가 클래스나 패키지를 찾을 때 기준이 되는 파일 경로

  • 기본적으로 java 명령을 실행하는 위치
  • 미지정 시 기본적으로 현재 디렉터리가 클래스 패스 가된다.
  • 세미콜론(;)을 구분자로 하여 여러 개 경로를 지정할 수 있다.
  • 파일 및 디렉터리를 지정할 수 있다.
  • jar, zip 확장자 지정 가능

 

4. CLASSPATH 환경변수

 

* 앞서 설명한 클래스 패스를 환경변수로 지정할 수 있다.

  • 환경변수로 한번 지정할 경우 후에 나올 -classpath 옵션을 java를 실행할 때마다 사용하지 않아도 된다.
  • Window 기준으로 시스템 환경 변수 설정 시 JAVA_HOME(Java가 설치된 경로) 아래 lib을 CLASSPATH로 지정하였다.

ClASSPATH

 


 

5. -classpath 옵션

 

 

*자바를 실행할 때 사용할 클래스들의 위치를 JVM에게 알려준다.

  • -classpath 대신 단축어 -cp를 사용해도 된다.

ex) 현재 디렉터리에서 하위 디렉토리 wony에 있는 wony.class파일 열기

java -classpath .:wony wony

 

6. 접근 지시자

 

 

  • 접근 허용 표
접근 제어자 같은 클래스 같은 패키지 자손 클래스 전체
public O O O O
protected O O O X
default O O X X
private O X X X

 

  • 접근 대상 표
접근 제어자 클래스 필드 생성자 메소드
public O O O O
protected X O O O
default O O O O
private X O O O

❗️ Refer.

- package 키워드
https://programmers.co.kr/learn/courses/5/lessons/172
https://www.notion.so/ed8e346f88f54849a06ff968b1877ca5

- 클래스 패스
https://pej4303.tistory.com/57

'Live-Study' 카테고리의 다른 글

[9주차] 예외 처리  (0) 2021.02.19
[8주차] 인터페이스  (0) 2021.02.19
[6주차] 상속  (0) 2021.02.19
[5주차] 클래스  (0) 2021.01.04
[4주차] 제어문  (0) 2020.12.31