7주차 과제: 패키지
목표
자바의 패키지에 대해 학습하세요.
목차
1. package 키워드
2. import 키워드
3. 클래스패스
4. CLASSPATH 환경변수
5. -classpath 옵션
6. 접근지시자
1. package 키워드
(1) 패키지
서로 관련 있는 클래스나 인터페이스의 컴파일된 클래스 파일을 묶어 놓은 것(디렉터리)
같은 파일명이라도 패키지가 다르면 구분된다.
(2) 경로 표시
클래스의 경로를 표기할 땐 점(.)으로 한다.
java.util.Scanner
2. import 키워드
다른 패키지에 있는 클래스를 사용하기 위해서는 패키지를 불러와야 힌다.
경로를 표기해 사용할 수도 있지만 번거롭기 때문에 import를 사용하여 한 번만 경로를 알려준다.
import문은 코드의 앞에 써야한다.
(1) 클래스마다 경로명을 알려주는 경우
import 패키지.클래스;
(2) 한 패키지 안의 여러 클래스를 불러오는 경우
import 패키지.*;
(3) 패키지 선언
.java 파일을 컴파일 해서 생기는 .class 파일은 무조건 패키지에 소속되어야 한다.
소스 파일의 첫 줄에 사용해야 한다.
package 패키지명;
3. 클래스패스
클래스 경로. JVM이 .class 파일을 찾기 위한 경로를 말한다.
클래스패스를 지정하는 방법은 CLASSPATH 환경변수와 -classpath 옵션이 있다.
4. CLASSPATH 환경변수
컴퓨터의 환경변수/시스템변수에서 설정할 수 있다.
JVM이 시작될 때 경로를 전달 받는다.
5. -classpath 옵션
CLASSPATH 환경 변수에 등록된 경로를 대체한다.
컴파일 할 때 필요한 클래스 파일을 찾기 위해 파일 경로를 지정해준다.
6. 접근지시자
접근 지정자
클래스나 멤버들을 다른 클래스에서 접근해도 되는 지 선언하는 지시어
(1) 클래스의 접근 지정
- public 클래스
패키지에 상관없이 다른 어떤 클래스에서도 사용 가능
public class Test{
}
다른 클래스에서 Test 클래스의 객체를 생성 가능
- default 클래스
접근 지정자 없이 클래스 선언
같은 패키지 내의 클래스에서만 사용 가능
class Test{
}
(2) 멤버 접근 지정자
접근 클래스 | 멤버 접근 지정자 | |||
private | default | protected | public | |
같은 패키지 내 | × | ○ | ○ | ○ |
다른 패키지 | × | × | × | ○ |
접근 가능 영역 | 클래스 내 | 같은 패키지 내 | 같은 패키지, 자식 클래스 |
모든 클래스 |
- public 멤버
패키지 상관 없이 모든 클래스에서 접근 가능
- private 멤버
클래스 내의 멤버만 접근 가능
보통 private는 멤버 변수에 지정해 값 변경이 이루어지지 않게 한다. 변경은 멤버 함수를 통해 이루어진다.
- protected 멤버
같은 패키지의 모든 클래스에서 접근 가능
다른 패키지라도 자식 클래스라면 접근 가능
- default 멤버
접근 지정자가 생략된 멤버
같은 패키지에 있는 클래스만 접근 가능