7주차 과제: 패키지 #7
목표
자바의 패키지에 대해 학습하세요.
학습할 것 (필수)
- package 키워드
- import 키워드
- 클래스패스
- CLASSPATH 환경변수
- -classpath 옵션
- 접근지시자
package 키워드
여러개의 클래스가 동일한 이름을 가졌을때 구분하는방법으로 파일로 나눠서 구분한다.
혹은 서로 관련있는 클래스와 인터페이스를 한곳에 묶어서 관리한다
패키지 = 디렉터리 = 파일
import 키워드
다른곳에 있는 패키지를 가져온다,
class path
경로 지정
클래스가 위치하는 경로를 지정해서 자바가 원하는 클래스를 로드 할 수 있게 하는것
소스코드를 컴파일 하면 소스코드만 생성되는 것이 아니라 안에있는 클래스 파일도 생성된다.
classpath 를 지정하기 위한 두 가지 방법이 있다.
- CLASSPATH 환경변수 사용
- java runtime 에 -classpath 옵션 사용
CLASSPATH 환경변수 사용
컴퓨터 시스템 변수 설정을 통해 지정할 수 있다.
JVM이 시작될 때 JVM의 클래스 로더는 이 환경 변수를 호출한다. 그래서 환경 변수에 설정되어 있는 디렉토리가 호출되면 그 디렉토리에 있는 클래스들을 먼저 JVM에 로드한다. 그러므로 CLASSPATH 환경 변수에는 필스 클래스들이 위치한 디렉토리를 등록하도록 한다.
컴퓨터 시스템 변수 설정을 통해 지정할 수 있다.
-classpath옵션
컴파일러가 컴파일 하기 위해서 필요로 하는 참조할 클래스 파일들을 찾기 위해서 컴파일시 파일 경로를 지정해주는
옵션
java 명령 실행 시 옵션으로 클래스패스를 지정할 수 있습니다.
또한 CLASSPATH 환경 변수 설정 후 실행 하였는데 -classpath 옵션이 우선 순위가 높은 것을 볼 수 있습니다.
접근지시자
누가 이것을 사용할지 권한의 차이를 두는 것
ㄴ왜? 공통적인 부분을 private해서 사용자가 의도하지 않은 방법으로 클래스 상태를 변경하지 못하게 만듬
자바에서는 다음과 같은 네 가지의 접근 제어자를 제공합니다.
1. private
class안에서만 사용간으
2. public
어디에서나 사용가능
3. default
자식에서 사용가능
but, 패키지 안에서만 사용가능
4. protected
자식에서 사용가능
but, 다른 패키지의 상속후에도 사용가능
FQCN(Full Qualified Class Name)
클래스가 속한 패키지 명을 모두 포함한 이름을 말한다
빌트인 페키지
자바에 이미 내장되어있는 클래스자주쓰이는 것으로 java.lang(String, StringBuffer Process, Runtime, Thread Math, StrictMath Exception Throwable, Error Package, Class, ClassLoader Wrapper, System, Stream )
java.util(AbstractCollection, AbstractList, AbstractSequentialList, LinkedList, ArrayList, Vector, Stack, AbstractSet, HashSet, LinkedHashSet, TreeSet, AbstractMap, HashMap, LinkedHashMap, TreeMap, Arrays, BitSet, Calendar, GregorianCalendar, Collection, Date, Dictionary, Hashtable, Properties, EventObject, Locale, Observable, Random, Scanner, StringTokenizer)이있다.