[Java] 07-1 μλ°μ ν¨ν€μ§μ λͺ¨λ
- -
π . μλ°μ ν¨ν€μ§μ λͺ¨λ
κ°λ°μ λ³λ‘ μ½λλ₯Ό μμ±νλ€λ³΄λ©΄ ν΄λμ€ μ΄λ¦μ΄ κ°μμ§ μ μμ΅λλ€. μ΄λ¬ν μ½λλ₯Ό ν©μ³ μ¬μ©νκΈ° μν΄μλ λ€λ₯Έ κ°λ°μ μ½λμ ν΄λμ€ μ΄λ¦μ λ°κΏμΌν©λλ€. μλ°μμλ μ΄λ₯Ό 보μνκΈ° μν΄ ν¨ν€μ§(package)λΌλ κ°λ μ λμ λμμ΅λλ€.
μλ‘ κ΄λ ¨μλ μ½λλ₯Ό λ¬Άμ΄μ κ΄λ¦¬νλ ν¨ν€μ§μ JDK9 μ λ°μ΄νΈ μ΄ν μ¬μ©λλ λͺ¨λμ λν΄μ λ°°μ°λλ‘ νκ² μ΅λλ€. ν¨ν€μ§ μ μΈ λ°©μλ λ°°μ보λλ‘ νκ² μ΅λλ€. 07-2 ν¬μ€νΈμμλ μλ°μμ μμ£Ό μ¬μ©λλ ν¨ν€μ§λ€μ μ¬λ‘λ€μ 보λλ‘ νκ² μ΅λλ€.
π I. μλ° ν¨ν€μ§
π 1. ν¨ν€μ§μ κ°λ λ° νμμ±
- μλ‘ κ΄λ ¨λ μ½λ(ν΄λμ€λ μΈν°νμ΄μ€) νμΌμ λ¬Άμ κ²
- ν΄λμ€ μ΄λ¦ μμ ν¨ν€μ§ μ΄λ¦μ λΆμ¬ κ°μ μ΄λ¦μ ν΄λμ€ νμΌ μ¬μ© κ°λ₯
- ν΄λμ€λ₯Ό κΈ°λ₯λ³λ‘ λ¬Άμ΄ λμ κ΄λ¦¬ λλ μ κ·Όμ μ©μ΄νκ² ν¨
κ° κ°λ°μ λ³λ‘ μ½λλ₯Ό μμ±νλ€λ³΄λ©΄ κ°μ μ΄λ¦μ classλ₯Ό μ μΈν μλ μμ΅λλ€. μ΄λ¬ν κ²½μ° κ° ν΄λμ€λ₯Ό ꡬλΆνκΈ° μν΄ packageκ° νμν©λλ€.
π 2. μλ° ν¨ν€μ§
μλ° ν¨ν€μ§λ μλ‘ κ΄λ ¨λ ν΄λμ€μ μΈν°νμ΄μ€λ₯Ό μ»΄νμΌν νμΌλ‘ λ¬Άμ΄λμ λλ ν°λ¦¬λΌκ³ μκ°νλ©΄ μ’μ΅λλ€.
- ν¨ν€μ§λ κ³μΈ΅μ μΌλ‘ ꡬμ±
- κ° κ³μΈ΅μ λνΈ ( . ) λ‘ κ΅¬λΆνμ¬ κ΄λ ¨λ ν΄λμ€ κ΄λ¦¬λ₯Ό μ©μ΄νκ² ν¨
- ν΄λμ€ κ²½λ‘λͺ μ ν¨ν€μ§ μ΄λ¦κ³Ό ν΄λμ€ μ΄λ¦μΌλ‘ ꡬμ±
- ν¨ν€μ§λ³ μ κ·Ό μ ν κ°λ₯
- μλ‘ λ€λ₯Έ ν¨ν€μ§μ λμΌν μ΄λ¦μ ν΄λμ€ μμ± κ°λ₯
π 3. μλ° νμ€ ν¨ν€μ§
- μλ° νλ‘κ·Έλ¨μ κ°λ°ν λ μ¬μ©ν μ μλ ν΄λμ€μ μΈν°νμ΄μ€μ λͺ¨μ
- κ°μ κ²½λ‘ μμ μμΉ
- μλ° νμ€ ν¨ν€μ§λ μλ° κ°λ° νκ²½μ μΌλΆ
- JDK9 μ΄νλ jmodsμ λͺ¨λλ‘ λΆν λμ΄ μ 곡 (JDK9 μ΄μ μλ jar)
π II. μλ° λͺ¨λ
π 1. μλ°μ λͺ¨λ(module)
- μ¬λ¬ ν¨ν€μ§μ μ΄λ―Έμ§ λ±μ μμμ λͺ¨μλμ 컨ν μ΄λ
- JDK9 μ΄ν λΆν° μλ°μ APIμ λͺ¨λ ν΄λμ€λ€μ ν¨ν€μ§ κΈ°λ°μμ λͺ¨λ κΈ°λ°μΌλ‘ λ°κΏλ
- μμ© νλ‘κ·Έλ¨ μμ μ¬λ¬ κ°μ λͺ¨λλ‘ λΆν κ°λ₯
- ν΄λμ€κ° λͺ¨μ¬ ν¨ν€μ§, ν¨ν€μ§κ° λͺ¨μ¬ λͺ¨λμ ꡬμ±
π 2. λͺ¨λμ κ°λ
- JDK 9 μ΄μ μλ λͺ¨λ ν¨ν€μ§λ€μ΄ νλμ νμΌλ‘ μ 곡
=> μΌλΆλΆλ§ νμν΄λ λͺ¨λ λ©λͺ¨λ¦¬μ λ΄μμΌν΄μ λ©λͺ¨λ¦¬ λλΉκ° μ¬νμ - JDK 9 μ λ°μ΄νΈλ‘ κ° ν¨ν€μ§λ€μ μ°κ΄λ κ²λ€λ‘ λͺ¨λλ‘ λ¬Άμ΄ νμν κ²λ§ μ¬μ©
- λ©λͺ¨λ¦¬κ° λΆμ‘±ν μλ² λλ νκ²½μ μ΅μ νλ μλ°μ νΉμ§
π 3. μλ° APIμ λͺ¨λ νμΌκ³Ό ν΄λμ€λ€
- μλ° μ€μΉ κ²½λ‘μ jmods λλ ν°λ¦¬μ λͺ¨λ νμΌ(.jmod)κ° μ‘΄μ¬
- λͺ¨λ νμΌμλ μλ° API ν¨ν€μ§λ€μ΄ λ€μ΄μμ
- μ΄ νμΌμ κ²½λ‘λ€μ΄ λνΈ( . )λ₯Ό ν΅ν΄ ννλ μ μλ κ²
π 4. μλ° λ²μ λ³ μ€ν νκ²½ λΉκ΅
- μλ° μ€ν νκ²½(run time environment)μ μλ° μμ©νλ‘κ·Έλ¨μ΄ μ€νλλλ° νμν μ λ° νκ²½
- μλ° API ν΄λμ€μ μλ° κ°μ κΈ°κ³(JVM)μΌλ‘ ꡬμ±
- JAVA 9 μ΄μ μλ μλ° APIμ λͺ¨λ ν΄λμ€λ€μ rt.jarμ΄λΌλ νλμ λ¨μΌμ²΄λ‘ ꡬμ±
- JVMμ νμν ν΄λμ€ νμΌμ rt.jar μ 체λ₯Ό μ€μΉν΄μ λ‘λ©νκ³ μ€ν
- JAVA 9 μ΄νμλ° APIλ₯Ό λ§μ μμ λͺ¨λλ‘ λΆν
- μ»΄νμΌμ νμν λͺ¨λλ§ μ‘°λ¦½νμ¬ κ΅¬μ±
- νμν λͺ¨λλ§μ λ¬Άμ΄ modules νμΌμ λ§λ€ μλ μμ (컀μ€ν JRE)
π 5. μ£Όμ ν¨ν€μ§λ€
μλ° μ€μΉμ μλ° κ°λ° λκ΅¬μΈ JDK(Java Develope Kit)κ° μ€μΉλλ©΄μ μ΄κ³³μλ κ°λ°μκ° μ¬μ©νλ λ§μ ν΄λμ€λ€μ΄ ν¨ν€μ§μ λ΄κΈ°κ³ , λ€μ λͺ¨λμ λ΄κ²¨ μ 곡λ©λλ€. μ΄λ κ² μλ°μμ μ 곡λλ κΈ°λ³Έ ν΄λμ€λ€μ μλ° APIλΌκ³ ν©λλ€. JDKμ νμ€ ν¨ν€μ§λ λͺ¨λλ‘ λλμ΄μ Έ JDKλ₯Ό μ€μΉν λλ ν 리 λ°μ jmods λλ ν°λ¦¬μ λ΄κ²¨ μμ΅λλ€.
(1) java.base λͺ¨λ
- java.lang : λ¬Έμμ΄, μν, νμ€ μ μΆλ ₯ λ±μ κΈ°λ³Έμ μΈ ν΄λμ€μ μΈν°νμ΄μ€ μ 곡 / import λΆνμ
- java.util : λ μ§, μκ°, 벑ν°, ν΄μ맡 λ±μ μΌλ° μ νΈλ¦¬ν° μ 곡
- java.io : μ μΆλ ₯ μ§μ
(2) java.desktop λͺ¨λ
- java.awt : κΈ°λ³Έμ μΈ GUI
- java.swing : μΆκ°μ μΈ GUI
μλ° APIμ λν 곡μ λ¬Έμλ λ€μμ μ£Όμλ₯Ό μ°Έκ³ νμΈμ.
https://docs.oracle.com/en/java/javase/11/
π III. ν¨ν€μ§ ꡬμ±κ³Ό μ¬μ©
π 1. ν¨ν€μ§μ ν¬ν¨λ ν΄λμ€μ μ¬μ© λ°©λ²
(1) νμμ ν¨ν€μ§λͺ μ ν¬ν¨ν ν΄λμ€ μ΄λ¦ μ¬μ©
java.util.Scanner s;
s = new java.util.Scanner(System.in);
- μλ° μμ©νλ‘κ·Έλ¨μμ λ€λ₯Έ ν¨ν€μ§μ ν΄λμ€λ₯Ό μ¬μ©νκ³ μνλ©΄ ν¨ν€μ§λͺ μ ν¬ν¨νλ κ²½λ‘κ° νμ
- java.utilμ΄λΌλ κ²½λ‘λ₯Ό ν΅ν΄ Scanner ν΄λμ€μ μ κ·Ό
(2) μμ€ λ§¨ μμ import μ μΈλ¬Έμ μ¬μ©
import java.util.Scanner;
Scanner s;
s = new Scanner(System.in);
- import λ¬Έμ μ¬μ©νλ©΄ μ΄ν ν¨ν€μ§ κ²½λ‘λ₯Ό μλ΅νκ³ ν΄λμ€ μ΄λ¦λ§μΌλ‘ μ‘°μ κ°λ₯
- import ν¨ν€μ§.ν΄λμ€; νμμΌλ‘ μ μΈ
π 2. import λ¬Έμ μ΄μ©ν μλ° ν¨ν€μ§ μ¬μ©
(1) import <ν¨ν€μ§κ²½λ‘.ν΄λμ€λͺ >
- μ§μ λ ν¨ν€μ§ κ²½λ‘μ ν¬ν¨λμ΄ μλ ν΄λμ€ μ€ λͺ μλ ν΄λμ€λ§ κ°μ Έμ΄
- [ctrl] + [shift] + O λ‘ λΉ λ₯΄κ² import λ¬Έμ μμ±ν μ μμ
import java.util.Scanner;
(2) import <ν¨ν€μ§κ²½λ‘.*>
- μ§μ λ ν¨ν€μ§ κ²½λ‘μ ν¬ν¨λ λͺ¨λ ν΄λμ€λ€μ κ°μ Έμ΄
- νμ ν¨ν€μ§λ κ°μ Έμ€μ§ μμμ μ£Όμ
import java.util.*;
π 3. ν¨ν€μ§ μ μΈ
- μ£Όμμ μ μΈν μμ€ μ½λ 맨 μμ μ μΈ
- ν¨ν€μ§ λͺ μ κ³μΈ΅μ μΌλ‘ ꡬμ±λμ΄ μμΌλ©° .μΌλ‘ ꡬλΆλ¨
package ν¨ν€μ§λͺ ;
π 4. λν΄νΈ ν¨ν€μ§ (default package)
- package μ μΈλ¬Έμ΄ μλ μμ€
- νλ λλ ν°λ¦¬μ μμΉν¨
'Java' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[Java] 08. λ°°μ΄ (0) | 2022.10.11 |
---|---|
[Java] 07-2 μλ° κΈ°λ³Έ API (0) | 2022.10.06 |
[Java] 06. μΊ‘μνμ μ 보 μλ (1) | 2022.09.30 |
[Java] 05. ν΄λμ€μ λ©€λ² (0) | 2022.09.29 |
[Java] 04. ν΄λμ€μ κ°μ²΄ (0) | 2022.09.28 |
μμ€ν κ³΅κ° κ°μ¬ν©λλ€