패키지
패키지란 클래스의 묶음이다
패키지에는 클래스 또는 인터페이스를 포함시킬 수 있으며, 서로 관련된 클래스끼리 그룹 단위로 묶어 놓음으로써 클래스를 효율적으로 관리할 수 있다
같은 이름의 클래스 일지라도 서로 다른 패키지에 존재하는 것이 가능
자신만의 패키지 체계를 유지함으로써 다른 클래스 라이브러리의 클래스와 이름이 충돌하는 것을 피할 수 있다
클래스의 실제 이름에는 패키지명이 포함되어있다
ex) String 클래서의 실제 이름은 java.lang.String
- java.lang 패키지에 속한 클래스라는 의미
클래스가 물리적으로 하나의 클래스파일(.clas) 인 것과 같이 패키지는 물리적으로 하나의 디렉토리
즉 어떤 패키지에 속한 클래스는 해당 디렉토리에 존재하는 클래스 파일(.class)이어야 한다
디렉토리처럼 패키지도 다른 패키지를 포함할 수 있으며 점(.)으로 구별한다
- 하나의 소스파일에는 첫 번째 문장으로 단 한번의 패키지 선언만을 허용
- 모든 클래스는 반드시 하나의 패키지에 속해야 함
- 패키지는 점(.)을 구분자로 하여 계층구조로 구성할 수 있다
- 패키지는 물리적으로 클래스 파일(.class)을 포함하는 하나의 디렉토리
패키지의 선언
package 패키지명;
패키지는 다음과 같이 한 줄만 적어서 선언하면 된다
소스파일에서 반드시 주석과 공백을 제외한 첫 번째 문장이어야 하며, 하나의 소스파일에 단 한번만 선언될 수 있다.
패키지명은 소문자로 하는 것이 원칙
패키지를 지정하지 않은 클래스는 자동적으로 '이름 없는 패키지'에 속하게 된다
따라서 패키지를 지정하지 않은 모든 클래스들은 같은 패키지에 속하는 셈
큰 프로젝트에서는 패키지를 구성하는게 좋다
import문
다른 패키지의 클래스를 사용하기 위해서는 패키지명이 포함된 클래스 이름을 사용해야 한다
import문으로 사용하고자 하는 클래스의 패키지를 미리 명시해주면 패키지명을 생략하고 클래스를 사용할 수 있다
import 패키지명.클래스명;
import 패키지명.*;
import문의 역할은 컴파일러에서 소스파일에 사용된 클래스의 패키지에 대한 정보를 제공하는 것
package와 달리 import은 여러번 선언이 가능하며 클래스 선언문 이전에 위치해야 한다.
일반적인 소스파일(.java)의 구성은 다음과 같다
1. package문
2. import문
3. 클래스 선언
static import 문
static import문을 사용하면 static 멤버를 호출할 때 클래스 이름을 생략할 수 있다.
특정 클래스의 static 멤버를 자주 사용할 때 편리하고 코드도 간결해진다
import static java.lang.Integer.*; //Integer 클래스의 모든 static 메서드
import static java.lang.Math.random; //Math.random()만. 괄호 안붙임
import static java.lang.System.out; //System.out을 out만으로 참조 가능
만약 위와 같이 static 문을 선언하였다면 System.out.println(Math.random());을
out.println(random());
이렇게 간결하게 사용할 수 있다
'Language > Java' 카테고리의 다른 글
[Java] 객체지향 프로그래밍 - 다형성과 추상클래스 (0) | 2024.04.08 |
---|---|
[Java] 객체지향 프로그래밍 - 제어자 (0) | 2024.04.05 |
[Java] 객체지향 프로그래밍 - 오버라이딩(overriding) (0) | 2024.04.05 |
[Java] 객체 지향 프로그래밍 - 상속 (0) | 2024.04.03 |
[Java] JsonArry 형태의 문자열을 List<VO>객체로 변환하기 (0) | 2023.10.12 |