자바의 패키지에 대해 학습하세요.
package 키워드
import 키워드
클래스패스
CLASSPATH 환경변수
-classpath 옵션
접근지시자
Java의 패키지는 관련 클래스를 그룹화하는 데 사용된다.
파일 디렉토리에 있는 폴더
생각하면 된다.
우리는 패키지를 사용해서 이름 충돌을 피하고 더 나은 유지 관리 가능한 코드를 작성할 수 있다.
패키지는 크게 두 가지로 나뉜다.
내장 패키지 (Java api 패키지)
사용자 정의 패키지 (자신만의 패키지 생성)
Java API는 Java Development Environment에 포함된 무료로 미리 작성된 클래스 라이브러리다.
라이브러리에는 입력, 데이터베이스 프로그래밍 등을 관리하기 위한 구성 요소가 포함되어 있다.
라이브러리는 패키지와 클래스로 나뉘는데, 단일 클래스(메소드 및 속성과 함께) 가져오거나 지정된 패키지에 속하는 모든 클래스를 포함하는 전체 패키지를 가져올 수 있다.
import 라이브러리의 클래스나 패키지를 사용하려면 다음 키워드를 사용해야 한다
import package.name.Class; // Import a single class
import package.name.*; // Import the whole package
우리가 알고리즘 문제를 풀때 많이 사용하는 사용자 입력을 받는 데 사용되는 Scanner
클래스와 같이 사용하려는 클래스를 찾은 경우 다음과 같이 코드를 작성한다.
import java.util.Scanner;
여기서 java.util
은 패키지이고 Scanner
는 패키지의 Scanner
클래스 이다.
클래스를 사용하려면 Scanner
클래스의 개체를 만들고 Scanner
클래스 설명서에 있는 사용 가능한 메서드를 사용한다.
import java.util.Scanner;
class MyClass {
public static void main(String[] args) {
Scanner myObj = new Scanner(System.in);
System.out.println("Enter username");
String userName = myObj.nextLine();
System.out.println("Username is: " + userName);
}
}
선택할 수 있는 패키지는 굉장히 많다.
java.util
에는 날짜 및 시간 기능, 난수 생성기 및 기타 유틸리티 클래스도 포함되어 있다.
import java.util.*;
전체 패키지를 가져오려면 문장을 * 로 끝내면 된다. 그러면 패키지의 모든 클래스를 가지고 온다.
자신의 패키지를 만들려 하면 Java 가 파일 시스템 디렉토리를 사용하여 패키지를 저장한다는 것을 이해해야 한다.
└── root
└── mypack
└── MyPackageClass.java
패키지를 만들려면 pacakge
키워드를 사용하면 된다.
package mypack;
class MyPackageClass {
public static void main(String[] args) {
System.out.println("This is my package!");
}
}
모든 클래스에는 정의된 클래스 이름과 패키지 이름이 있다.
이 둘을 합쳐야 완전하게 한 클래스를 표현할 수 있으며 FQCN(Fully Qualified Class Name)이라 한다.
ex) String 클래스의 패키지는 "java.lang" 이며 FQCN은 "java.lang.String"이 된다.
클래스를 찾기 위한 경로를 의미한다.
JVM 이 프로그램을 실행할 때, 클래스 파일을 찾는데 기준이 되는 파일 경로.
.java 파일을 컴파일하면 소스 코드가 바이트코드
로 변환된다.(.class)
java runtime으로 .class 파일을 실행하려면 먼저 파일을 찾을 수 있어야 한다.
이때 .class 파일을 찾을 때 classpath 에 지정된 경로를 사용하게 된다.
package kr.sunghoon.jjang;
public class King {
public static void main(String[] args){
System.out.println("kingsunghoon");
}
}
classpath를 지정할 수 있는 방법은 환경 변수 CLASSPATH 를 지정하거나 java runtime에서 -classpath 플래그를 사용하는 방법이 있다.
환경변수는 운영체제에 지정하는 변수로 자바 가상머신과 같은 애플리케이션들은 환경변수 값을 참고해서 동작하게 된다.
자바는 클래스 패스로 환경변수 CLASSPATH 를 사용하게 되는데 이 값을 지정하면 실행할 때마다
-cp(classpath) 옵션을 사용하지 않아도 된다.
시스템 설정 > 환경변수
/etc/profile
자바에서는 클래스, 인터페이스나 멤버에 대한 접근을 제어할 수 있는 접근 지시자(Access Modifier)
라는 것을 제공한다.
선언 위치에 따라 언급한 항목들에 대해 접근성이 정해지는 것
public
protected
package-private (default)
private