자바API패키지, 예외처리, 모듈 알아보기

이유빈
이유빈 |
자바API패키지, 예외처리, 모듈 알아보기

패키지(package)

  • 관련있는 클래스들을 하나로 묶은 것
  • 패키지의 종류

    Untitled

    • 패키지
      • 내장 패키지: 자바에서 기본적으로 제공하는 패키지들
      • 사용자 정의 패키지: 사용자가 정의하는 패키지들

패키지의 필요성

  • 서로 관련된 클래스들을 하나의 단위로 모을 수 있음
  • 사용하는 이유중 중요한 이유는 “이름공간” 때문임
    • 이름공간: 이름 충돌을 방지해줄 수 있는 도구
    • 패키지만 다르면 개발자들은 동일한 클래스 이름을 사용할 수 있음
  • 세밀한 접근 제어 구현 가능
    • 패키지 안에 클래스들은 패키지 안에서만 사용이 가능하도록 선언 가능 (default)

패키지 선언

  • 소스 파일을 패키지에 넣으려면 소스 파일의 맨 처음에 해당 문장을 넣으면 됨

      package graphics;
    

패키지 사용하기

  • 완전한 이름으로 참조한다
    • 완전한 이름이란
      • 패키지 이름이 클래스 앞에 붙은 것
      • 외부 패키지에 있는 클래스를 사용하려면 원칙적으로 앞에 패키지를 붙인 정식 클래스 이름을 써주어야 함
        graphics.Rectangle myRect = new graphics.Rectangle();
      
  • 패키지 안에서 우리가 원하는 클래스만을 포함한다
    • 외부 패키지의 특정한 멤버를 import 하기
      import graphics.Rectangle;
      Rectangle myRect = new Rectangle();
    
  • 패키지 안의 모든 클래스를 포함한다
    • *을 사용하여 모든 클래스를 포함하기
      import graphics.*;
      Rectangle myRect = new Rectangle();
    

계층 구조의 패키지 포함하기

Untitled

  • 두 문장에서 불러오는 패키지는 서로 다름

클래스 파일의 로드

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

Object 클래스

  • Object 클래스는 java.lang 패키지에 들어 있으며 자바 클래스 계층 구조에서 맨 위에 위치하는 클래스

    Untitled

  • Object의 메소드

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

이유빈

국민대학교 소프트웨어융합대학 소프트웨어학부 이유빈입니다. 링크 아이콘을 클릭해 Github 페이지로 이동할 수 있습니다.

댓글

comments powered by Disqus