자바API패키지, 예외처리, 모듈 알아보기
이유빈 |
패키지(package)
- 관련있는 클래스들을 하나로 묶은 것
-
패키지의 종류

- 패키지
- 내장 패키지: 자바에서 기본적으로 제공하는 패키지들
- 사용자 정의 패키지: 사용자가 정의하는 패키지들
- 패키지
패키지의 필요성
- 서로 관련된 클래스들을 하나의 단위로 모을 수 있음
- 사용하는 이유중 중요한 이유는 “이름공간” 때문임
- 이름공간: 이름 충돌을 방지해줄 수 있는 도구
- 패키지만 다르면 개발자들은 동일한 클래스 이름을 사용할 수 있음
- 세밀한 접근 제어 구현 가능
- 패키지 안에 클래스들은 패키지 안에서만 사용이 가능하도록 선언 가능 (default)
패키지 선언
-
소스 파일을 패키지에 넣으려면 소스 파일의 맨 처음에 해당 문장을 넣으면 됨
package graphics;
패키지 사용하기
- 완전한 이름으로 참조한다
- 완전한 이름이란
- 패키지 이름이 클래스 앞에 붙은 것
- 외부 패키지에 있는 클래스를 사용하려면 원칙적으로 앞에 패키지를 붙인 정식 클래스 이름을 써주어야 함
graphics.Rectangle myRect = new graphics.Rectangle();
- 완전한 이름이란
- 패키지 안에서 우리가 원하는 클래스만을 포함한다
- 외부 패키지의 특정한 멤버를 import 하기
import graphics.Rectangle; Rectangle myRect = new Rectangle(); - 패키지 안의 모든 클래스를 포함한다
- *을 사용하여 모든 클래스를 포함하기
import graphics.*; Rectangle myRect = new Rectangle();
계층 구조의 패키지 포함하기

- 두 문장에서 불러오는 패키지는 서로 다름
클래스 파일의 로드
- 자바 소스 파일(.java)이 컴파일 되면 .class 확장자를 가지는 클래스 파일로 변환되고 파일 시스템에 저장됨
- 클래스 파일은 자바 가상 기계(JVM)에 의해 로드됨
- 클래스 파일은 요청 시 JVM에 로드됨
- 기본적인 방법으로 지연 클래스 로드라고도 함
- 애플리케이션 코드를 구성하는 기본적인 클래스 파일은 시작 시 로드됨
- 지연 클래스 로드
- 가상 머신의 메모리를 절약할 수 있다는 장점이 있음
- 아래 코드에서 result가 null이면 내부의 코드 블록은 절대 실행되지 않음
- 이 상황에서 가상 기계는 MyClass를 메모리에 로드하지 않음
if(result != null) { MyClass object = new MyClass(); //어떤 작업을 한다. }
Object 클래스
-
Object 클래스는 java.lang 패키지에 들어 있으며 자바 클래스 계층 구조에서 맨 위에 위치하는 클래스

-
Object의 메소드
- public boolean equals(Object obj): obj가 이 객체와 같은지를 검사함
- public String toString(): 객체의 문자열 표현을 반환함
- protected Object clone(): 객체 자신의 복사본을 생성하여 반환함
- public int hashCode(): 객체에 대한 해쉬 코드를 반환함
- protected void finalize(): 가비지 콜렉터에 의하여 호출됨
- public final Class getClass(): 객체의 클래스 정보를 반환함
댓글