본문 바로가기
Java

[Java] 패키지

by Hindsight.. 2021. 2. 27.

백기선님이 진행하시는 라이브 스터디 7주차 과제입니다.

 

1. package 키워드

비슷한 성격의 클래스들을 모아 만든 자바의 디렉토리. 클래스명의 고유성을 보장해 주기 위해 사용한다. 다른 개발자가 같은 이름의 클래스를 생성했을 때, 패키지로 구분함으로써 두 클래스의 고유성을 보장해줄 수 있다.

ex) com.tom.eatChicken // com.sujin.eatChicken

ex)
com.tom.eatChicken
com.sujin.eatChicken

 

사실 자바에는 우리가 패키지로 인식하지 않고 사용하는 패키지가 있는데 그것은 java.lang 패키지, 자바가 알아서 java.lang의 클래스들을 불러온다. 단, 이외의 패키지들은 모두 2번의 import 키워드로 추가해주어야 JVM이 인식할 수 있다.

2. import 키워드

사용하고자 하는 클래스가 다른 패키지에 소속되어 있다면, import함으로써 다른 패키지의 특정 클래스를 가져오거나 패키지 전체를 불러올 수 있다.

ex)

패키지명.클래스

패키지명.* == 패키지 내 모든 클래스를 가져옴

ex)
패키지명.클래스
패키지명.* == 패키지 내 모든 클래스를 가져옴

3. 클래스패스

클래스 경로를 의미한다. JVM이 시작되며, 클래스를 로드할때 클래스를 찾기 위해 접근하는 경로이다.

.java 파일을 컴파일하면, 바이트 코드 즉, .class로 변환된다. 이제 java가 이 파일 내의 명령을 실행하는데, 이 때 필요한 것이 클래스패스.

클래스패스를 지정하는 방법에는 환경 변수와 -classpath 옵션이 있다.

4. CLASSPATH 환경변수

윈도우에서 자바를 설치할때 대부분의 튜토리얼에는 JAVA_HOME과 CLASSPATH 라는 환경변수를 추가한다. 사실 저도 이번에 처음알았지만.. 여기서 쓰인 다는 것!

보통 JAVA_HOME은 jdk 경로를 입력해준다. ex) C:\Program Fiels\Java\jdk-**

그리고 CLASSPATH는 jdk경로 하위에 위치한 lib 폴더 즉, 클래스들이 모여있는 디렉토리를 입력한다.

이를 통해 우리는 jdk에 포함된 라이브러리들을 이용할 수 있던 것이며, 이 외에 외부 디렉토리에 위치한 클래스패스를 입력하고 싶다면, 5번을 주목하면 된다.

5. -classpath 옵션

.java 파일을 컴파일할때, 명령어로써 필요한 클래스패스를 추가해주는 옵션이다.

ex) javac -classpath C:\Java\MyFood.java

ex) javac -classpath C:\Java\MyFood.java

6. 접근지시자

기존의 표 형식과 다르게 포함관계로 그려보았다. 각 접근지시자의 큰 특징은

Public은 제한없이 모두 가능

Protected는 동일 패키지와 외부 패키지더라도, 상속받은 클래스라면 접근 가능 

Defualt는 동일 패키지에서만 가능

Private는 해당 클래스 내에서만 접근이 가능하다.

 

사실 Protected는 많이 사용해보지 않아서 잘 와닿지 않는다.. 조만간 접목시켜볼 클래스를 찾아봐야겠다.

'Java' 카테고리의 다른 글

[Java] 인터페이스  (0) 2021.03.04
[Java] 상속  (0) 2021.02.21
[Java] 클래스  (0) 2021.01.04
[Java] 제어문, Queue, Stack, LinkedList  (0) 2020.12.23
[Java] 연산자  (0) 2020.12.20