-
백기선님의 Java 스터디를 진행하며 찾아본 내용입니다.
목표
자바의 패키지에 대해 학습하세요
학습할 것
- pakage 키워드
- import 키워드
- 클래스패스
- CLASSPATH 환경변수
- -classpath 옵션
- 접근지시자
pakage 키워드
관련 클래스를 그룹화 하는데 사용되어진다.
파일 디렉터리에서의 '폴더'라고 생각하면 된다.
이름간에 충돌을 방지 할 수 있고 패키지를 사용함으로써 보다 편리하게 관리 할 수 있다.
2가지의 카테고리로 나뉜다
- Built-in Package (java API가 제공하는 패키지)
- User-defined Package (유저가 만든 패키지)
Built-in Packages
- Java API제공하는 라이브러리 클래스, 무료로 사용할 수 있으며 JDE안에 포함되어져 있다.
- managing input, database programming 등등의 기능을 하는 컴포넌트들이 포함되어져 있다.
- 자세한 API 리스트는 docs.oracle.com/javase/8/docs/api/ 에서 확인 할 수 있다.
Import 키워드
클래스나 패키지를 가져오는데에 사용한다
12import package.name.Class; // Import a single classimport package.name.*; // Import the whole packagecs 클래스패스
JVM이 클래스 파일을 찾는데 사용하는 변수
다음과 같은 코드가 있다고 가정하자
import org.company.Menu Menu menu = new Menu()
위의 패키지가 dir 폴더에 있다고 가정하고 Menu 클래스는 dir/org/company/Menu에 있다고 가정 할 때
classpath에 dir을 주게 되면 VM이 코드를 보고 해당 클래스를 import 해오게 된다.
-classpath 옵션
JDK tool에서 -classpath 옵션을 주거나 CLASSPATH 환경 변수를 설정함으로써 classpath를 설정해 줄 수 있다
다른 프로그램에 영향을 주지 않고 개별적으로 설정 할 수 있다.
// JDK Tool에서 사용 C:> set CLASSPATH=classpath1;classpath2...
or
// JDK tool에서 사용 C:> sdkTool -classpath classpath1;classpath2...
or
java -classpath C:\java\MyClasses utility.myapp.Cool
접근 지시자
- Private - 클래스 내에서만 접근 가능하다.
- Default - 패키지 밖에서는 접근이 불가능하다.
- Protected - 패키지 내부와 패키지 밖에 있을 경우 자식 클래스에 한정해서 접근이 가능하다
- Public - 어느곳에서나 접근이 가능하다
접근지시자 해당 클래스 내부 같은 패키지 내부 외부 패키지
and 상속받은 클래스패키지 외부 private O X X X Default O O X X Protected O O O X Public O O O O Reference
www.w3schools.com/java/java_packages.asp
docs.oracle.com/javase/8/docs/technotes/tools/windows/classpath.html
www.geeksforgeeks.org/classpath-in-java/
www.javatpoint.com/access-modifiers