JAVA - 패키지(Package)

이재원·2024년 10월 23일
0

JAVA

목록 보기
3/7

패키지의 개념 및 필요성

패키지는 서로 관련 있는 코드의 묶음으로 C++의 namespace와 목적이 유사하다. 패키지가 필요한 이유는 크게 두가지가 있다.

  • 같은 클래스명은 같지만 서로 완전히 다른 클래스가 존재할 수 있기에 이를 분리
  • 클래스를 기능별로 묶어 놓아 관리 또는 접근을 용이하게 하기 위해서

패키지는 도트(.)으로 구분하여 계층적으로 구성되어 있는데, 파일 탐색기에서는 디렉토리로 구분되어 있는 것을 확인할 수 있다.

import java.util.Scanner;

public class ImportEx {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
	}
}

코드를 설명하기에 앞서 Scanner 클래스는 java.util 패키지 안에 존재한다. 그렇기에 위 코드에서는 Scanner 클래스를 사용하기 전에 import java.util.Scanner 를 사용하여 패키기 경로명을 작성해 준 것이다.

만약 java.util 안에 있는 클래스를 모두 불러오고 싶다면 아래와 같이 작성하면 된다.

import java.util.*

* 은 지정된 패키지 경로에 포함된 모든 클래스를 가져온다. 단, 하위 패키지는 가져오지 않는다.

주요 패키지들

java.base 모듈

  1. java.lang
    • 문자열, 수학, 표준 입출력 등 일반적인 지원
    • 패키지명 없이 사용 가능
  2. java.util : 일반적인 유틸리티가 포함된 패키티
    • 날짜, 시간, 벡터, 해시맵 등
  3. java.io : 입출력 지원

java.desktop 모듈

  1. java.awt : 기본적인 GUI
  2. java.swing: 추가적인 GUI

패키지 선언

패키지는 주석을 제외한 소스 코드의 맨 앞에 선언해야 한다.

패키지가 선언된 코드를 실행하면 패키지명에 기술된 경로로 소스 파일이 저장된다.

예를 들어 Scanner는 java.util 패키지에 포함되어 있으므로 파일 탐색기에서는 java 폴더 안에 util이라는 하위 폴더에 저장되어 있는 형태이다.

만약, 패키지를 선언하지 않고 소스 파일을 실행하게 되면 디폴트 패키지로 분류되어 현재 폴더에 저장된다.

Object 클래스

Object 클래스는 java.lang 패키지에 속한 클래스로, 자바의 모든 클래스들은 이 클래스를 기반으로 작성된다. 즉, 모든 클래스는 Object 클래스를 최상위(부모) 클래스로 상속 받은 형태란 것이다. 자동으로 상속되기 때문에 직접 작성할 필요는 없다.

주요 메서드는 다음과 같다.

toString()

toString() 메서드는 클래스 이름과 해시코드를 포함한 문자열을 반환한다.

Book a = new Book("황기태", "명품자바", "김하진");
System.out.println(a); // Book@4e25154f (기본 toString 출력)

toString() 메서드의 역할은 다음과 같다.

  • 객체의 문자열 표현을 반환: 객체를 사람이 읽을 수 있는 형태로 나타내기 위해 사용
  • 디버깅: 객체의 상태(필드 값 등)을 확인할 때 유용

toStrint() 메서드는 오버라이딩을 통해 객체의 출력을 원하는 형식으로 변경할 수 있다.

@Override
public String toString() {
	return buyer + "이 구입한 도서: " + author + "의 " + title;
}

이제 System.out.println()을 이용하여 호출하면 위에서 정의한 형식대로 출력 가능합니다.

출처
명품 JAVA programming - 황기태, 김효수
https://www.youtube.com/사람만이

profile
20학번 새내기^^(였음..)
post-custom-banner

0개의 댓글