일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- BalancedTree
- jacoco
- 프리코스
- B+TREE
- N+1
- 블로그 병행
- mysql
- 월간회고
- Blue-Green
- Jenkins
- 도커
- SQL 실행순서
- 카카오 2차 코딩테스트
- java
- 어댑티브 해시 인덱스
- DeleteAll
- 우테코
- ci/cd
- db
- 메서드명
- 주간회고
- 계층별 구조
- 백기선 스터디
- useQuery
- InnoDB 버퍼 풀
- useMutation
- 클래스
- 멀티쓰레드 프로그래밍
- 기능별 구조
- 회고
- Today
- Total
Haneul's Blog
[Java] 패키지 본문
목표 [백기선 자바 스터디 7주차]
자바의 패키지에 대해 학습하세요.
학습할 것
- package 키워드
- import 키워드
- 클래스패스
- CLASSPATH 환경변수
- -classpath 옵션
- 접근지시자
package 키워드
자바에서 클래스가 많아지면 이를 한 곳에서 관리하기가 힘듭니다. 이를 관련된 파일끼리 폴더별로 관리하게 되는데 이를 관리하는 폴더를 자바에서는 패키지라고 합니다.
패키지의 특징
- 한 폴더에 같은 이름의 클래스가 2개 이상 올 수 없습니다.
- 소스의 가장 첫 줄에 있어야 하고, 패키지 선언은 소스 하나에 하나만 있어야 합니다.
- 패키지 이름과 위치한 폴더의 이름이 같아야 합니다.
- 패키지 이름을 java로 시작하면 안됩니다.
- 패키지 이름은 모두 소문자여야 합니다.
-> 모든 클래스에는 정의된 클래스 이름과 패키지 이름이 있습니다. 이 둘을 합쳐야 완전한 클래스를 표현한다고 할 수 있고 FQCN(Fully Qualified Class Name)이라고 합니다.
패키지 종류
- Built-in Package
-> 자바는 개발자들이 사용할 수 있도록 여러 많은 패키지 및 클래스를 제공하며 대표적으로 가장 많이 쓰이는 java.lang과 java.util이 있습니다. 여기서 java.lang은 자동으로 import되는 특징이 있습니다. - User-defined Package
-> 유저에 의해 정의된 패키지를 의미합니다.
import 키워드
import는 다른 패키지에 있는 클래스에 접근하기 위해 사용됩니다.
클래스 이름을 명시하면 특정 클래스에 접근 가능하고, *를 사용하면 패키지 내의 모든 클래스에 접근할 수 있습니다.
static import
static import를 사용하면 static member를 class name을 명시하지 않고 접근할 수 있게 됩니다.
주로 가독성을 위해 사용되지만 남용하는 경우에는 오히려 가독성을 해치는 경우가 생길 수 있습니다.
import static java.lang.System.*;
class Test{
public static void main(String[] args) {
out.println("java.lang의 System을 static import하여 앞의 System을 빼고 사용할 수 있음");
}
}
CLASSPATH 환경변수 및 -classpath
JVM에서 사용하는 매개변수로 Java 프로그램을 컴파일 및 실행하는데 사용됩니다. 또한, 패키지에 경로를 지정하여 Application ClassLoader를 통해 참조, 접근할 수 있습니다.
이러한 CLASSPATH는 현재 디렉토리나 서브 디렉토리에 없는 클래스를 사용해야 하는 경우나 지정한 위치에 존재하지 않는 클래스를 불러와야 할 경우에 사용됩니다.
그렇다면 어떻게 CLASSPATH를 지정하여 사용할까요? 그것은 아래와 같이 2가지의 방법이 있습니다.
- CLASSPATH 환경 변수를 지정하여 사용
CLASSPATH라는 환경 변수를 통해 JVM이 런타임시 기준으로 삼을 파일 경로를 전달해줄 수 있습니다. 환경변수에 경로를 등록하게 되면 JVM 클래스 로더는 이 디렉토리에 있는 클래스를 로드하게 됩니다. - -classpath 옵션 사용
-classpath 옵션은 java, javac 등의 명령에서 사용할 수 있으며 이를 사용할 경우 (1)에 있는 CLASSPATH 환경 변수에서 등록한 경로보다 우선순위가 됩니다.
접근지시자
접근지시자는 클래스, 메서드, 인스턴스 및 클래스 변수를 선언할 때 사용됩니다.
자세한 내용은 이전에 정리한 클래스에서 접근지시자에 대한 내용을 정리한 바가 있기 때문에 아래의 링크를 참고하면 좋을 것 같습니다.
https://haneulss.tistory.com/22
[Java] 클래스
목표 [백기선 자바 스터디 5주차] 자바의 Class에 대해 학습하세요. 학습할 것 클래스 정의하는 방법 객체 만드는 방법 (new 키워드 이해하기) 메서드 정의하는 방법 생성자 정의하는 방법 this 키워
haneulss.tistory.com
'Java' 카테고리의 다른 글
[Java] 예외 처리 (0) | 2022.10.20 |
---|---|
[Java] 인터페이스 (0) | 2022.10.19 |
[Java] 상속 (0) | 2022.10.17 |
[Java] 클래스 (0) | 2022.10.16 |
[Java] 제어문 (0) | 2022.10.15 |