package-private
(접근 제어자가 없는 상태) 접근 권한을 가지므로, 패키지를 기준으로 접근을 제한할 수 있다.자바에서 클래스를 특정 패키지에 포함시키려면 패키지 선언을 사용해야 한다. 패키지 선언은 파일의 가장 첫 줄에 위치해야 하며, 해당 클래스가 속할 패키지를 명시한다.
package 패키지이름;
public class 클래스명 {
// 클래스의 내용
}
package com.example.project; //패키지 선언
public class MyClass {
public void display() {
System.out.println("패키지 예제");
}
}
import
문패키지에 있는 클래스를 사용하려면 ìmport
문을 사용하여 임포트해야 한다. 자바에서는 단일 클래스를 임포트하거나, 패키지 내의 모든 클래스를 임포트할 수 있다.
import com.example.project.MyClass;
import com.example.project.*;
import
문은 패키지 내 모든 클래스를 포함하는 것이 아니라, 해당 패키지의 직접적인 클래스만 임포트한다. 하위 패키지는 자동으로 임포트되지 않는다.
javac -d
명령어는 컴파일된 클래스 파일을 저장할 출력 디렉토리를 지정한다. 이 옵션을 사용하면, 자바 컴파일러는 패키지 구조를 기반으로 디렉토리를 자동으로 생성하고, 해당 디렉토리 안에 .class
파일을 저장한다
javac -d [출력 디렉토리 경로] [컴파일할 자바 파일]
[출력 디렉토리 경로]
: 컴파일된 .class
파일을 저장할 경로[컴파일할 자바 파일]
: 컴파일할 자바 소스 파일의 경로javac -d . -encoding utf-8 Pack2.java
public class Pack1 {
public Pack1() {
System.out.println("Pack1 생성자");
}
}
package com;
//컴파일 시 해당 패키지에 클래스 파일이 생성된다.
// javac -d . -encoding utf-8 Pack2.java
public class Pack2 {
public Pack2() {
System.out.println("Pack2 생성자");
}
}
package com.java.test;
public class Pack3 {
public Pack3() {
System.out.println("Pack3 생성자");
}
}
import com.Pack2;
// import com.java.test.Pack3'
// import com.java.test.*;
public class PackMainEx01 {
public static void main(String[] args) {
Pack p1 = new Pack1();
// 패키지 안의 클래스에 접근
com.Pack.p2 = new com.Pack2();
// import 문으로 접근
Pack p22 = new Pack2();
// 긴 패키지 이름
com.java.test.Pack3 p3 = new com.java.test.Pack3();
[문제]
com.naver 라는 패키지 안에 이름, 학번, 나이, 키로 구성되는 Student 클래스를 선언하고, 데이터를 가져오는 StudentEx 실행 클래스 선언 실행(생성자만 호출)하세요.
package com.naver;
public class Student {
String hakbun;
String name;
int age;
double height;
}
package com.naver;
// import com.naver.Student;
public class StudentEx {
public static void main(String[] args) {
Student s = new Student();
s.hakbun = "11111";
s.name = "김울보";
s.age = 25;
s.height = 170;
System.out.println(s.hakbun);
System.out.println(s.name);
}
}
javac -d . -encoding utf-8 Student.java
javac -d . -encoding utf-8 StudentEx.java
java com.naver.StudentEx