728x90
모듈
- 여러 패키지와 이미지 등의 자원을 모아 놓은 컨테이너
- JDK 9부터 자바 API의 모든 클래스들(자바 실행 환경)을 패키지 기반에서 모듈들로 완전히 재구성함
- 응용프로그램 역시 여러 개의 모듈로 분할하여 작성 가능
- 클래스의 패키지화 → 패키지의 모듈화
- 자바 API를 여러 모듈로 분할하여 응용프로그램의 실행에 적합한 모듈들로만 실행 환경 구축
- 메모리 등의 자원이 열악한 작은 소형 기기에 꼭 필요한 모듈로만 구성하여 실행하기 위함
💡 모듈화는 복잡한 개념이므로 메모리 환경이 충분한 경우에는 굳이 모듈화를 하지 않아도 됨
- 모듈 파일에는 자바 API 의 패키지와 클래스들이 들어 있음
- jmod 명령을 이용하여 모듈 파일에 들어 있는 패키지를 풀어 낼 수 있음
java.util.Scanner
: 경로명으로 구성java.util
: 패키지명Scanner
: 클래스명
패키지
: 서로 관련된 클래스와 인터페이스의 컴파일 된 클래스 파일들을 하나의 디렉터리에 묶어 놓은 것
패키지의 특징
- 패키지 계층 구조
- 관련된 클래스 파일들을 하나의 패키지로 계층화하여 관리 용이
- 패키지별 접근 제한
- 패키지 별로 접근 권한 가능
- 동일한 이름의 클래스와 인터페이스의 사용 가능
- 서로 다른 패키지에 같은 이름의 클래스와 인터페이스 존재 가능
- 높은 소프트웨어 재사용성
import 문
- 다른 패키지에 작성된 클래스를 사용하기 위해
import 사용 ❌
- 해당 클래스 사용 시, 전체 경로명을 명시해야함
public calss ImportEx {
public static void main(String[] args) {
java.util.Scanner scanner = new java.util.Scanner(System.in);
System.out.println(scanner.next());
}
}
- import 사용
- 소스 코드 맨 앞에 사용하려는 패키지 명시
- └ 소스 코드에선 클래스명만 명시하면 된다.
import java.util.Scanner;
public class ImportEx {
public static void main(String[] args){
Scanner scanner = new Scanner(System.in);
}
}
💡 현재 패키지 내의 모든 클래스 포함
import java.util.*
디폴트 패키지
: 현재 디렉터리를 뜻함
- package 선언문 없이 만들어진 클래스의 패키지
패키지 생성
패키지 선언
package [패키지명]
- 컴파일한 클래스 파일을 패키지명의 디렉터리에 저장하라는 지시
- 소스 파일의 첫 줄에 선언
package UI; //Toos 클래스를 컴파일하여 UI 패키지에 저장
public class Tools{
...
} //Tools 클래스의 경로명은 UI.Tools
Ex1
- Calculator.java
package lib;
public abstract class Calculator {
public abstract int add(int a, int b);
public abstract int subtract(int a, int b);
public abstract double average(int[] a);
}
- GoodCalc.java
package app;
import lib.Calculator;
public class GoodCalc extends Calculator{
@Override
public int add(int a, int b) {
return a + b;
}
@Override
public int subtract(int a, int b) {
return a - b;
}
@Override
public double average(int[] a) {
double sum = 0;
for (int i = 0; i < a.length; i++)
sum += a[i];
return sum/a.length;
}
public static void main(String[] args) {
Calculator c = new GoodCalc();
System.out.println(c.add(3, 2));
System.out.println(c.subtract(3,2));
System.out.println(c.average(new int [] {2, 3, 4}));
}
}
아래 노션 페이지에 자바 공부 내용에 대해 업로드 합니다!
수정사항이나 질문사항의 경우 노션 댓글로 남겨주세요!(*•̀ᴗ•́*)و ̑̑
개발 환경
작성 플랫폼
728x90
'🧑💻 Language > Java' 카테고리의 다른 글
[Java] 13. GUI (0) | 2021.06.01 |
---|---|
[Java] 12. 모듈화와 패키지 응용 (2) | 2021.06.01 |
[Java] 10. 인터페이스 (0) | 2021.05.26 |
[Java] 9. 추상 메소드와 추상 클래스 (0) | 2021.05.16 |
[Java] 8. 메소드 오버라이딩 (0) | 2021.05.16 |