[JAVA] 06. 모듈과 패키지

gogori6565·2022년 10월 8일
0

JAVA

목록 보기
10/11

📌 모듈(module)과 패키지(package)

패키지
: 서로 관련된 클래스와 인터페이스의 컴파일된 클래스 파일들을 하나의 디렉터리에 묶어 놓은 것

모듈
: 여러 패키지와 이미지 등의 자원을 모아 놓은 컨테이너

<목적>

  1. 자바 API를 여러 모듈로 분할해 응용프로그램의 실행에 적합한 모듈들로만 실행 환경을 구축할 수 있게 함
  2. 메모리가 작은 소형 기기에 꼭 필요한 모듈로 구성된 크기의 실행 이미지를 만들기 위함

<패키지명과 클래스의 경로명> - 점(.)으로 연결

Project.FileO.Tools.class
Project.UI.Tools.class

패키지 (package)

일종의 디렉터리(폴더), 자바 API는 이곳에 담겨 제공된다
패키지는 관련 코드를 하나로 묶어, 관리를 수월하게 한다

패키지 선언

package 패키지명;
-컴파일한 클래스 파일을 패키지명의 디렉터리에 저장하라는 지시
-소스파일 첫 줄에 선언

package UI; // Tools 클래스를 컴파일하여 UI 패키지에 저장할 것을 지시

public class Tools { // 이제 이 클래스의 경로명은 UI.Tools가 된다.
...
}

이로써, Tools 클래스의 경로명은 UI.Tools 가 되어 다른 클래스에서 Tools 클래스를 사용하려면 import UI.Tools

<디폴트 패키지>
package 선언문 없이 만들어진 클래스의 패키지로 현재 디렉터리에 저장된다.

패키지 사용하는 법 - import 문

  1. import 이용하지 않는 경우
java.util.Scanner scanner = new java.util.Scanner(System.in);

소스 내 패키지 이름과 클래스 이름의 전체 경로명을 써줘야함

  1. import 이용하는 경우
import java.util.Scanner;
...
Scanner scanner = new Scanner(System.in);

패키지 - ArrayList

import java.util.ArrayList;

배열을 기반으로 한 컬렉션의 하나. 데이터를 추가, 삭제시 내부에서 동적으로 배열의 길이를 조절.

  • 리스트의 길이가 '가변적'이다, 이를 '동적 할당(dynamic allocation)'이라고 한다
  • 배열과 달리 메모리에 연속적 나열 x, 주소로 연결되어 있는 형태이기에 index를 통한 색인(접근)속도가 배열보다 느림
  • 데이터(element) 사이 빈 공간을 허용하지 않음
  • 객체로 데이터를 다룸, 따라서 적은 양의 데이터만 쓸 경우 배열에 비해 차지하는 메모리가 커진다
//ArrayList의 사용

ArrayList<String> names = new ArrayList<String>();

names.add("Kim");
names.add("Lee");
names.add("Park");

System.out.println(names.get(1)); // "Lee"

names.remove(1); // names -> {"Kim", "Park"}

names.set(0, "Choi"); // names -> {"Choi", "Park"}

System.out.println(names.size()); // 2

모듈 (module)

: 패키지와 이미지 등의 리소스를 담은 컨테이너로 모듈 파일(.jmod)로 저장한다


자바 API

프로그램을 만들기 위한 도구, API를 사용하면 더 편리한 프로그래밍이 가능하다
자바 API는 패키지로 제공된다

profile
p(´∇`)q

0개의 댓글