ν΄λμ€
1. κ°μ²΄ μ§ν₯ νλ‘κ·Έλλ°
κ°μ²΄λ 물리μ μΌλ‘ μ‘΄μ¬νκ±°λ μΆμμ μΌλ‘ μκ°ν μ μλ κ² μ€μμ μμ μ μμ±μ κ°κ³ μμΌλ©΄μ μλ³ κ°λ₯ν κ²μΌλ‘ μμ±κ³Ό λμμΌλ‘ ꡬμ±λμ΄ μκ³ μλ°μμλ κ°κ° νλμ λ©μλλΌκ³ λΆλ₯Έλ€.
κ°μ²΄λ€μ κ°κ° λ 립μ μΌλ‘ μ‘΄μ¬νκ³ λ€λ₯Έ κ°μ²΄μ μλ‘ μνΈμμ©νλ©΄μ λμνλλ° μνΈμμ© μλ¨μ λ©μλμ΄λ€. κ°μ²΄μ μνΈμμ©μ κ°μ²΄ κ°μ λ©μλ νΈμΆμ μλ―Ένλ©° λ§€κ° κ°κ³Ό λ¦¬ν΄ κ°μ ν΅ν΄μ λ°μ΄ν°λ₯Ό μ£Όκ³ λ°λλ€.
κ°μ²΄λ κ°λ³μ μΌλ‘ μ¬μ©λ μ μμ§λ§ λλΆλΆ λ€λ₯Έ κ°μ²΄μ κ΄κ³λ₯Ό λ§Ίκ³ μλ€.
- μ§ν© κ΄κ³: κ°μ²΄λ νλμ λΆνμ΄κ³ νλλ μμ±νμ ν΄λΉνλ€.
- μ¬μ© κ΄κ³: κ°μ²΄ κ°μ μνΈμμ©μΌλ‘ λ€λ₯Έ κ°μ²΄μ λ©μλλ₯Ό νΈμΆνμ¬ μνλ κ²°κ³Όλ₯Ό μ»μ΄λΈλ€.
- μμ κ΄κ³: μμ(λΆλͺ¨) κ°μ²΄λ₯Ό κΈ°λ°μΌλ‘ νμ(μμ) κ°μ²΄λ₯Ό μμ±νλ κ΄κ³μ΄λ€.
2. ν΄λμ€
ν΄λμ€μλ κ°μ²΄λ₯Ό μμ±νκΈ° μν νλμ λ©μλκ° μ μλμ΄ μκ³ ν΄λμ€λ‘λΆν° λ§λ€μ΄μ§ κ°μ²΄λ₯Ό ν΄λΉ ν΄λμ€μ μΈμ€ν΄μ€λΌκ³ λΆλ₯Έλ€.
ν΄λμ€λ λΌμ΄λΈλ¬λ¦¬(API), μ€ν 2κ°μ§μ μ©λκ° μλ€. λΌμ΄λΈλ¬λ¦¬ ν΄λμ€λ λ€λ₯Έ ν΄λμ€μμ μ΄μ©ν λͺ©μ μΌλ‘ μ€κ³λλ€. νλ‘κ·Έλ¨ μ 체μμ μ¬μ©λλ ν΄λμ€κ° 100κ°λΌλ©΄ 99κ°λ λΌμ΄λΈλ¬λ¦¬ ν΄λμ€μ΄κ³ λ¨ νλκ° μ€ν ν΄λμ€μ΄λ€. μ€ν ν΄λμ€λ νλ‘κ·Έλ¨μ μ€ν μ§μ μ μΈ main() λ©μλλ₯Ό μ 곡νλ μν μ νλ€.
- νλ: κ°μ²΄μ κ³ μ λ°μ΄ν°, λΆν κ°μ²΄, μν μ 보λ₯Ό μ μ₯νλ€. μ μΈ ννλ λ³μμ λΉμ·νμ§λ§ λ³μλ μμ±μμ λ©μλ λ΄μμλ§ μ¬μ©λκ³ μμ±μμ λ©μλκ° μ’ λ£λλ©΄ μλ©Έλλ€. νμ§λ§ νλλ μμ±μμ λ©μλ μ 체μμ μ¬μ©λλ©° κ°μ²΄κ° μλ©Έλμ§ μλ ν κ°μ²΄μ ν¨κ» μ‘΄μ¬νλ€.
- μμ±μ: new μ°μ°μλ‘ νΈμΆλλ νΉλ³ν λ©μλλ‘ κ°μ²΄ μμ± μ μ΄κΈ°νλ₯Ό λ΄λΉνλ€. λ©μλμ λΉμ·νκ² μκ²Όμ§λ§, ν΄λμ€ μ΄λ¦μΌλ‘ λμ΄ μκ³ λ¦¬ν΄ νμ
μ΄ μλ€.
- λͺ¨λ ν΄λμ€λ μμ±μκ° λ°λμ μ‘΄μ¬νλ€.
- μμ±μ μ€λ²λ‘λ©μΌλ‘ μμ±μλ₯Ό νλ μ΄μ κ°μ§ μ μλ€.
- μμ±μμμ λ€λ₯Έ μμ±μλ₯Ό νΈμΆν λμλ this()λ₯Ό μ¬μ©νλ€.
- ν΄λμ€ λ΄λΆμ μμ±μ μ μΈμ μλ΅νλ€λ©΄ μ»΄νμΌλ¬λ κΈ°λ³Έ μμ±μλ₯Ό λ°μ΄νΈ μ½λμ μλ μΆκ°νλ€.
- ν΄λμ€μ λͺ μμ μΌλ‘ μ μΈν μμ±μκ° μλ€λ©΄ μ»΄νμΌλ¬λ μλμΌλ‘ κΈ°λ³Έ μμ±μλ₯Ό μΆκ°νμ§ μλλ€.
- μλμΌλ‘ μμ±λλ κΈ°λ³Έ μμ±μμ μ κ·Ό μ νμ ν΄λμ€μ μ κ·Ό μ νκ³Ό λμΌνλ€.
- λ©μλ:κ°μ²΄μ λμμ ν΄λΉλλ κ²μΌλ‘ νλλ₯Ό μ½κ³ μμ νλ μν λ νμ§λ§ λ€λ₯Έ κ°μ²΄λ₯Ό μμ±ν΄μ λ€μν κΈ°λ₯μ μννκΈ°λ νλ€.
3. μΈμ€ν΄μ€ λ©€λ²μ μ μ λ©€λ²
μΈμ€ν΄μ€ λ©€λ²λ κ°μ²΄λ§λ€ κ°κ³ μλ λ©€λ²μ΄κ³ μ μ λ©€λ²λ ν΄λμ€μ μμΉμν€κ³ κ°μ²΄λ€μ΄ 곡μ νλ λ©€λ²μ΄λ€.
- κ°μ²΄λ§λ€ κ°κ³ μμ΄μΌ ν λ°μ΄ν°λΌλ©΄ μΈμ€ν΄μ€ νλλ‘ μ μΈνκ³ κ³΅μ© λ°μ΄ν°λΌλ©΄ μ μ νλλ‘ μ μΈνλ€.
- μΈμ€ν΄μ€ νλλ₯Ό ν¬ν¨νκ³ μλ€λ©΄ μΈμ€ν΄μ€ λ©μλλ‘ μ μΈνκ³ κ·Έλ μ§ μλ€λ©΄ μ μ λ©μλλ‘ μ μΈνλ€.
1) μΈμ€ν΄μ€ λ©€λ²
μΈμ€ν΄μ€ λ©€λ²λ κ°μ²΄λ₯Ό μμ±ν ν μ¬μ©ν μ μλ νλμ λ©μλλ‘ μΈμ€ν΄μ€ νλλ κ°μ²΄λ§λ€ λ°λ‘ μ‘΄μ¬νκ³ μΈμ€ν΄μ€ λ©μλλ λ©μλ μμμ μ μ₯λκ³ κ³΅μ λλ€.
2) μ μ λ©€λ²
μ μ (Static) λ©€λ²λ ν΄λμ€μ κ³ μ λ λ©€λ²λ‘μ κ°μ²΄λ₯Ό μμ±νμ§ μκ³ μ¬μ©ν μ μλ νλμ λ©μλμ΄λ€. μ μ νλμ μ μ λ©μλλ ν΄λμ€ λ‘λκ° ν΄λμ€(λ°μ΄νΈ μ½λ)λ₯Ό λ‘λ©ν΄μ λ©μλ μμμ μ μ¬ν λ ν΄λμ€λ³λ‘ κ΄λ¦¬λλ€.
- λ΄λΆμ μΈμ€ν΄μ€ νλλ μΈμ€ν΄μ€ λ©μλλ₯Ό μ¬μ©ν μ μκΈ° λλ¬Έμ μ¬μ©νκ³ μΆλ€λ©΄ κ°μ²΄λ₯Ό λ¨Όμ μμ±νκ³ μ°Έμ‘° λ³μλ‘ μ κ·Όν΄μΌ νλ€.
- main() λ©μλλ λμΌν κ·μΉμ΄ μ μ©λλ€.
3) final νλ
μ΄κΈ°κ°μ΄ μ μ₯λλ©΄ μ΄κ²μ΄ μ΅μ’ μ μΈ κ°μ΄ λμ΄ νλ‘κ·Έλ¨ μ€ν μ€μ μμ ν μ μλ€.
4) μμ
λΆλ³μ κ°μΌλ‘ κ°μ²΄λ§λ€ μ‘΄μ¬νμ§ μκ³ ν΄λμ€μλ§ μ‘΄μ¬νκ³ static final ν€μλλ‘ μ μΈνλ€.
4. ν¨ν€μ§μ μ κ·Ό μ νμ
1) ν¨ν€μ§
μλ°μμλ ν΄λμ€λ₯Ό 체κ³μ μΌλ‘ κ΄λ¦¬νκΈ° μν΄ ν¨ν€μ§λ₯Ό μ¬μ©νλ€. ν¨ν€μ§μ 물리μ μΈ ννλ νμΌ μμ€ν μ ν΄λμΈλ° λ¨μν ν΄λ κΈ°λ₯λ§ νλ κ²μ΄ μλλΌ ν΄λμ€μ μΌλΆλΆμΌλ‘ ν΄λμ€λ₯Ό μ μΌνκ² λ§λ€μ΄μ£Όλ μλ³μ μν μ νλ€. ν΄λμ€ μ΄λ¦μ΄ λμΌνλλΌλ ν¨ν€μ§κ° λ€λ₯΄λ©΄ λ€λ₯Έ ν΄λμ€λ‘ μΈμνλ€.
ν΄λμ€λ₯Ό μμ±ν λ ν΄λΉ ν΄λμ€κ° μ΄λ€ ν¨ν€μ§μ μν κ²μΈμ§λ₯Ό μ μΈνλ€.
package μμν¨ν€μ§.νμν¨ν€μ§;
public class ClassName {}
λ€λ₯Έ ν¨ν€μ§μ μμλμ΄ μλ ν΄λμ€λ μΈν°νμ΄μ€λ₯Ό μ¬μ©νλ €λ©΄ import λ¬ΈμΌλ‘ μ»΄νμΌλ¬μκ² μλ €μ€μΌ νλ€.
import μμν¨ν€μ§.νμν¨ν€μ§.ν΄λμ€μ΄λ¦;
import μμν¨ν€μ§.νμν¨ν€μ§.*;
2) μ κ·Ό μ νμ
μ κ·Ό μ νμλ μΈ κ°μ§ μ’ λ₯κ° μκ³ μ κ·Ό μ νμκ° μ μ©λμ§ μμλ€λ©΄ default μ κ·Ό μ νμ κ°μ§λ€.
- public: μΈλΆ ν΄λμ€κ° μμ λ‘κ² μ¬μ©ν μ μλ€.
- protected: κ°μ ν¨ν€μ§ λλ μμ ν΄λμ€μμλ§ μ¬μ©ν μ μλ€.
- private: μΈλΆμμλ μ¬μ©ν μ μλ€.
- default: κ°μ ν¨ν€μ§μμλ§ μ¬μ©ν μ μλ€.