✍️ 학습할 것
- 패키지 (Package)
- import
- 클래스패스
- CLASSPATH 환경변수
- -classpath 옵션
- 접근지시자
📌 패키지 (Package)
패키지란? 클래스와 인터페이스의 집합이다.
자바는 패키지로 관련된 클래스나 인터페이스를 분류해 효율적으로 파일들을 관리한다.
패키지만 다르다면 같은 이름의 클래스가 존재할 수 있어 협업에서 발생하는 이름 충돌 문제를 해결할 수 있다.
추가적인 특징은 다음과 같다.
- 모든 클래스는 반드시 하나의 패키지에 속한다.
- 패키지 선언은 소스파일 첫 번째 문장에 단 한 번만 가능하다.
✔️ 이름 없는 패키지
- 패키지가 지정되지 않은 파일들을 포함하는 패키지이다.
- 앞서 말했듯이 모든 패키지는 반드시 하나의 패키지에 속해야 한다. 만약 패키지를 지정하지 않고 소스파일을 작성하면 이름 없는 패키지에 포함된다.
✔️ java.lang
- 자바프로그래밍에서 가장 기본이 되는 클래스를 포함하는 패키지이다.
- 모든 소스파일에 묵시적으로 선언되어 있어 import 없이 사용할 수 있다.
📌 import
import란? 컴파일러에 사용할 패키지에 대한 정보를 미리 제공하는 키워드이다.
패키지의 클래스를 다른 파일에서 사용하기 위해서는 클래스 이름 앞에 패키지의 경로까지 명시해야한다.
코드가 길어지는 번거로움을 import 키워드로 해결할 수 있다.
✔️ import 선언
import 패키지명.클래스명;
import 패키지명.*;
- * 을 이용하면 패키지의 모든 클래스를 동시에 import 할 수 있다. 하지만 하위 패키지의 클래스까지 포함하지 않는다.
📌 클래스패스
클래스패스란? 클래스를 찾기 위한 경로이다.
실행과정에서 바이트 코드로 변환된 *.class 파일에 포함된 명령을 실행하기 위해서 파일을 우선 찾아야한다.
이 때 사용하는 것이 클래스패스이고 여기에 *.class 파일이 포함된 디렉토리와 파일들이 콜론(:)으로 구분되어 있다.
클래스패스 지정 방법은 두 가지가 있다.
- CLASSPATH 환경변수 사용하기
- java runtime에 -classpath 옵션 사용하기
📌 CLASSPATH 환경변수
클래스패스를 지정하는 첫번째 방법. 컴퓨터 시스템 변수 설정로 지정하는 방법이다.
JVM이 시작될 때 실행되는 JVM의 클래스 로더는 환경변수에 설정되어 있는 디렉토리의 클래스들을 먼저 로드한다.
따라서 CLASSPATH 환경변수에는 필수 클래스들이 위치한 디렉토리를 등록하는게 좋다.
📌 -classpath 옵션
클래스패스를 지정하는 두번째 방법. 명령어로 지정하는 방법이다.
java 명령어는 javac 명령어로 만들어진 *.class 파일을 실행하는 명령어이다.
이 옵션을 붙이면 컴파일러가 필요한 클래스 파일을 찾을 수 있게 파일 경로를 지정해줄 수 있다.
// Example
java -classpath <C:\디렉토리 위치, jar파일, zip파일> <C:소스파일.java>
📌 접근지시자
Java의 클래스 편에서 정리한 접근지정자(=접근지시자=접근제어자)이다.
캡슐화에 관련된 내용만 추가적으로 가볍게 이야기하겠다.
✔️ 캡슐화 (Encapsulation)
객체지향 프로그래밍이 중요한 이유는 요구사항이 추가되고 바뀌어도 변경사항이 전파되지 않도록 막을 수 있기 때문에 생산성, 유지보수 등 다양한 면에서 강력하기 때문이다. 이 점을 가능케 해주는 도구 중 하나가 캡슐화이다.
캡슐화는 보통 객체의 변수와 메소드를 묶는 작업을 말한다. 전혀 와닿지 않는 정의이다.
내가 생각하는 캡슐화란 객체의 데이터와 데이터를 처리하는 메소드를 묶고 외부에는 모르게 하는 것이다.
너무 길어질 것 같아서 나중에 다루겠다!
'언어 공부 > Java' 카테고리의 다른 글
[Java] Java 예외 처리 (2) | 2022.09.20 |
---|---|
[Java] Java 인터페이스 (0) | 2022.09.08 |
[Java] Java의 상속 (2) | 2022.08.25 |
[Java] Java의 클래스 (0) | 2022.08.17 |
[Java] Java 제어문 (0) | 2022.08.16 |
댓글