패키지

목표 및 학습할 것

  • 목표 : 자바의 Class에 대해 학습하세요.

    package 키워드

    자바에서는 package를 여러 관련된 classes, interfaces, 혹은 sub-package를 묶기위해 사용합니다. package를 씀으로써의 장점으로는 아래와 같습니다.

  • 관련된 타입들을 찾기 쉽게 만들어 줍니다.
  • 이름의 중복을 피할 수 있습니다.
    • 예를 들어, com.red.Application, com.blue.Application
  • package path를 사용하여 접근을 통제할 수 있습니다.

import 키워드

자바에서 라이브러리에서 package, class를 쓰기위해 import 키워드를 사용합니다.

import com.packageName.Class;   // import a single class
import com.packageName.*;   // import the whole package

// 예제
import java.util.Scanner;

클래스패스

CLASSPATH는 자바 어플리케이션이 컴파일 혹은 실행 될 때, JVM이 CLASSPATH 위치에 있는 class를 찾고 로드 할 수 있습니다.


CLASSPATH 환경변수

CLASSPATH 환경변수의 위치는 os마다 상이합니다. 우리가 보통 jdk를 설치한 후에 jdk 디렉토리를 보면 bin 디렉토리를 찾을 수 있는데, 이 bin 디렉토리가 컴파일러와 실행자를 가지고 있습니다.

  • MS Windows : 윈도우 UI를 통해 진행
  • Linux : ~/.bashrc(bash), ~/.cshrc(c shell), ~/.profile(sh)

-classpath 옵션

CLASSPATH (보통 대문자로 표기)의 옵션은 -classpath (-cp)로 커멘드라인 옵션이 존재하니다.


접근지시자

영어로 Access Modifier이라 합니다. 총 4가지가 존재

  • public : 다른 package에서 사용 가능
  • protected : 같은 class 안과 sub-class에서 사용 가능
  • default (no keyword) : 같은 package 안에서 사용 가능
  • private : 같은 class 안에서만 사용 가능
Modifier Class Package Subclass World
public Y Y Y Y
protected Y Y Y N
default Y Y N N
private Y N N N

출처 https://www.baeldung.com/java-packages https://www.w3schools.com/java/java_packages.asp https://www.baeldung.com/java-classpath-syntax https://docs.oracle.com/javase/tutorial/essential/environment/paths.html https://docs.oracle.com/javase/8/docs/technotes/tools/windows/classpath.html https://www.baeldung.com/java-access-modifiers