패키지

Moom2n·2024년 2월 27일
0

Java

목록 보기
4/26

package:

  • 클래스를 체계적으로 관리하기 위한 도구 / 클래스들을 구분 짓는 폴더

  • 패키지의 물리적인 형태는 파일 시스템의 폴더

  • 단순히 파일 시스템의 폴더 기능만 하는 것이 아니라 클래스의 일부분

  • 클래스를 유일하게 만들어주는 식별자

클래스 이름이 동일해도 패키지가 다르면 다른 클래스로 인식한다. 또한 패키지 내부에 패키지를 둘 수도 있다.

  • 패키지와 클래스는 도트(.)를 사용해서 표시

상위패키지.하위패키지.클래스

패키지를 나타내는 코드

package day10.pack1;

public class ClassName {
    
}

이는 파일 시스템에서 다음과 같이 보여진다.

같은 패키지에 속하는 클래스들은 아무런 조건 없이 다른 클래스를 사용할 수 있지만, 다른 패키지에 속하는 클래스를 사용하려면 import 문을 사용해야 한다.

패키지의 포함된 다수의 클래스를 사용해야 한다면 클래스 이름을 생략하고 대신 *를 사용해서 import문을 한 번 작성한다.

import day10.pack2.*;

import a.*;
이렇게 선언한다고 a 패키지 밑에 있는 모든 패키지를 import하지는 않는다. * 사용하면 그 패키지에 선언된 클래스들만 import 한다. 즉, a.b, a.b.c에 선언된 클래스는 import하지 않는다.


- classpath 옵션

다음의 소스코드로 작성된 Main.java라는 파일이 있다고 가정해보자.

class Print{
    
    void firstPrint(){
        
        System.out.println("Hello World!");
        
    }
}

public class Main {
    
    public static void main(String[] args){
        
        Print print = new Print();
        print.firstPrint();
        
    }
}

컴파일 후 Print.class 를 다른 디렉토리로 옮기면 Main 클래스는 실행이 되지 않는다.
java -classpath ".:디렉토리명" Main 의 명령으로 classpath 옵션을 준 후 실행해야 한다.


Java 패키지

- Java 패키지

  • 코드의 시작 부분에 import 문을 사용하여 사용할 패키지를 명시
import java.util.Scanner;
import java.io.*;
  • 패키지 이름을 포함하는 전체 클래스 이름을 사용할 수 있음
String s1 = new String(Hello);
java.lang.String s2 = new java.lang.String(Hello);

- java.lang 패키지

  • import 없이 사용가능한 기본 패키지
    -- Integer, Long, Float, Double 등의 Wrapper 클래스
    -- 문자열과 관련된 String, StringBuffer, StringBuilder 클래스
    -- 표준 입출력을 위한 System.in, System.out 스트림
    -- Thread 관련 주요 클래스
    -- 이외 다양한 클래스와 인터페이스 포함

- java.util 패키지

  • 다용도로 사용할 수 있는 유용한 클래스들이 포함되어 있는 패키지
    -- Object 클래스의 보조 클래스인 Objects 클래스
    -- 날짜, 시간과 관련된 클래스
Date date = new Date();
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd", Locale.KOREAN);

-- 자료구조와 관련된 Collections Framework 관련 인터페이스와 클래스
-- 이벤트 모델과 국제화 기능
-- StringTokenizer, 난수 생성기

String lyincs = "Yesterday all my troubles seems so farawat";
StringTokenizer tokenizer = new StringTokenizer(lyincs);
while(tokenizer.hasMoreTokens()) {
	System.out.println(tokenizer.nextToken());
}
Random random = new Random();
int max = 10, min = 1;
int value = random.nextInt(max - min + 1) + min;
System.out.println(value);

-- Scanner 클래스 등 다양한 클래스와 인터페이스 포함

- java.io 패키지

  • 파일이나 통신 등 정보의 입출력을 처리하는 클래스가 포함된 패키지
    -- 파일 시스템의 파일 정보를 얻기 위한 File 클래스
    -- 콘솔에서 문자를 입출력하기 위한 Console 클래스
    -- InputStream, OutputStream 클래스 등 바이트 단위 입출력을 위한 스트림 추상 클래스
    -- FileInputStream, FileOutputStream등 바이트 단위 입출력을 위한 스트림 클래스
    -- Reader, Writer등 문자 단위 입출력을 위한 스트림 추상 클래스
    -- FileReader, FileWriter 등 문자 단위 입출력을 위한 하위 스트림 클래스
    -- 그 외 입출력을 위한 다양한 클래스 포함

- 기타 유용한 패키지

  • java.net 패키지
  • javafx 패키지
  • Java 버전에 따라 많은 유용한 패키지들이 포함되고 버전업 됨

0개의 댓글

관련 채용 정보