μ 체 κΈ135 24 Enum enumμ μλ°μμ μ΄κ±°ν(Enumeration)μ λνλ΄λ ν€μλμ λλ€. μ΄κ±°νμ μλ‘ μ°κ΄λ μμλ€μ μ§ν©μ μ μν λ μ¬μ©λλ©° ν΄λΉ μμλ€ μ¬μ΄μ κ΄κ³λ₯Ό λͺ ννκ² ννν μ μμ΅λλ€. μ΄λ₯Ό ν΅ν΄ μ½λμ κ°λ μ±μ ν₯μμν€κ³ μ μ§λ³΄μμ±μ λμΌ μ μμ΅λλ€. μ΄κ±°νμ μλ° 5λΆν° λμ λμμ΅λλ€. μ΄κ±°νμ μ¬μ©νλ μ΄μ μ μ£Όμ νΉμ§ κ°λ μ± ν₯μ: μ΄κ±°νμ μ¬μ©νλ©΄ μλ‘ κ΄λ ¨λ μμλ€μ ν κ³³μ κ·Έλ£Ήνν μ μμ΄ μ½λμ κ°λ μ±μ΄ ν₯μλ©λλ€. νμ μμ μ±: μ΄κ±°νμ νμ μμ μ±μ μ 곡ν©λλ€. enumμΌλ‘ μ μλ μμ μ΄μΈμ κ°μ μ¬μ©ν μ μμ΅λλ€. μ»΄νμΌ νμ 체ν¬: μ΄κ±°νμ μ¬μ©νλ©΄ μ»΄νμΌ νμμμ μ ν¨ν κ°μΈμ§ νμΈν μ μμ΅λλ€. μ΄κ±°ν λ©μλ: μ΄κ±°νμ λ©μλμ μμ±μλ₯Ό κ°μ§ μ μμ΅λλ€. μ΄κ±°νμ .. 2024. 1. 21. 23 Annotation μλ°μ μ΄λ Έν μ΄μ (Annotation)μ μμ€ μ½λμ λ©νλ°μ΄ν°λ₯Ό μΆκ°νλ λ°©λ²μ λλ€. μ΄λ Έν μ΄μ μ μ£Όλ‘ μ»΄νμΌλ¬μκ² μ 보λ₯Ό μ λ¬νκ±°λ λ°νμ μμ νλ‘κ·Έλ¨μ λμμ μμ νλ λ° μ¬μ©λ©λλ€. μ΄λ Έν μ΄μ μ @ κΈ°νΈλ₯Ό μ¬μ©νμ¬ ννλλ©°, μ¬λ¬ μ’ λ₯κ° μμ΅λλ€. λ©νλ°μ΄ν°? μλ°μ μ΄λ Έν μ΄μ (Annotation)μμμ λ©νλ°μ΄ν°λ μμ€ μ½λμ λΆκ°μ μΈ μ 보λ₯Ό 첨λΆνμ¬ μ»΄νμΌλ¬, νλ μμν¬, λ°νμ νκ²½ λ±μ΄ ν΄λΉ μ 보λ₯Ό μ΄ν΄νκ³ νμ©ν μ μλλ‘ ν©λλ€. μ΄λ Έν μ΄μ μ μ£Όλ‘ ν΄λμ€, λ©μλ, νλ λ±μ μμμ λΆκ° μ 보λ₯Ό λΆμ¬νλ λ° μ¬μ©λ©λλ€. 1) @Override μ΄λ Έν μ΄μ : μ»΄νμΌλ¬μκ² ν΄λΉ λ©μλκ° λΆλͺ¨ ν΄λμ€μ λ©μλλ₯Ό μ€λ²λΌμ΄λνλ€λ μ 보λ₯Ό μ 곡 2) @Deprecated: ν΄λΉ μμ(ν΄λμ€, λ©μ.. 2024. 1. 21. 22 throw & throws throwμ throwsλ μλ°μμ μμΈ μ²λ¦¬μ κ΄λ ¨λ ν€μλλ‘, μμΈλ₯Ό λ€λ£¨λ λ° μ¬μ©λ©λλ€. μμΈ λ°μμν€κΈ° - throw μμΈκ° λ°μν μν©μ νμ¬ μμΉμμ μ§μ μ²λ¦¬νκΈ° μ΄λ ΅κ±°λ μ²λ¦¬ν μ μλ κ²½μ°μ throw λ¬Έμ μ¬μ©νμ¬ μμΈλ₯Ό λμ§λλ€. μ΄κ²μ μμΈλ₯Ό νμ¬ μμΉμμ λ°μμν€λ κ²μ μλ―Έν©λλ€. κ·Έλ¦¬κ³ μ΄ μμΈλ νΈμΆ μ€νμ λ°λΌ μμ νΈμΆμλ‘ μ νλ©λλ€. λ보기 try { Exception e = new Exception("κ³ μλ‘ λ°μμν΄"); // μμΈ ν΄λμ€ μμ± throw e; // μμΈ λ°μμν€κΈ° // throw new Exception("κ³ μλ‘ λ°μμν΄"); μμ λ μ€μ ν μ€λ‘ } catch (Exception e) { System.out.println("μλ¬ λ©μΈμ§ : " +.. 2024. 1. 21. 21 Exception handling μμΈ μ²λ¦¬(Exception Handling)λ νλ‘κ·Έλ¨ μ€ν μ€μ λ°μνλ μμΈλ₯Ό μ μ νκ² μ²λ¦¬νλ νλ‘κ·Έλλ° κΈ°μ μ λλ€. μμΈ μ²λ¦¬λ₯Ό ν΅ν΄ μ€νμ€μΈ νλ‘κ·Έλ¨μ μμΈ μν©μ λν λμ² λ°©λ²μ μ μνκ³ , μ μμ μΈ νλ¦μ μ μ§ν μ μμ΅λλ€. μ¦, νλ‘κ·Έλ¨μ λΉμ μμ μΈ μ’ λ£λ₯Ό λ§λ κ²μ μμΈ μ²λ¦¬μ λͺ©μ μ΄ μμ΅λλ€. μλ°μμλ try, catch, finally λΈλ‘μ μ¬μ©νμ¬ μμΈ μ²λ¦¬λ₯Ό ꡬνν©λλ€. 1) try block → try λΈλ‘μ μμΈκ° λ°μν μ μλ μ½λλ₯Ό ν¬ν¨νλ λΈλ‘μ λλ€. try λΈλ‘ μμμ μμΈκ° λ°μνλ©΄ ν΄λΉ μμΈλ₯Ό μ²λ¦¬νλ catch λΈλ‘μΌλ‘ μ μ΄κ° μ΄λν©λλ€. 2) catch block → catch λΈλ‘μ νΉμ μμΈ νμ μ λν μ²λ¦¬ μ½λλ₯Ό ν¬ν¨ν©λλ€. μ¬λ¬ κ°μ catch .. 2024. 1. 21. 20 Exceptions μλ°(Java)μμ μμΈ(Exception)λ νλ‘κ·Έλ¨ μ€ν μ€μ λ°μν μ μλ μμμΉ λͺ»ν μν© λλ μ€λ₯λ₯Ό λνλ λλ€. μ΄λ¬ν μμΈλ νλ‘κ·Έλ¨μ μ μμ μΈ νλ¦μ λ°©ν΄νκ±°λ νλ‘κ·Έλ¨μ΄ λΉμ μμ μΌλ‘ μ’ λ£λ μ μλ μμΈμ΄ λ μ μμ΅λλ€. μλ°μμλ μμΈλ₯Ό μ²λ¦¬νκ³ κ΄λ¦¬νκΈ° μν λ€μν λ©μ»€λμ¦μ΄ μ 곡λ©λλ€. μμΈ (Exception) μμΈλ μ£Όλ‘ νλ‘κ·Έλ¨μ μΈλΆ μν©μ΄λ μ¬μ©μ μ λ ₯μ μν΄ λ°μνλ λ¬Έμ λ₯Ό λνλ λλ€. μμΈλ μΌλ°μ μΌλ‘ νλ‘κ·Έλ¨ μ½λμμ μ²λ¦¬ν μ μλ μν©μ΄λ©°, μμΈκ° λ°μνλ©΄ νλ‘κ·Έλ¨μ μμΈλ₯Ό μ μ ν μ²λ¦¬νμ¬ κ³μ μ€νλ μ μμ΅λλ€. μλ°μμλ μμΈλ₯Ό μ²λ¦¬νκΈ° μν try-catch λΈλ‘μ μ¬μ©ν©λλ€. Checked μμΈμ Unchecked μμΈ(λ°νμ μμΈ)λ‘ λλ©λλ€. 1) .. 2024. 1. 21. 19 Interface μΈν°νμ΄μ€(Interface)λ κ°μ²΄ μ§ν₯ νλ‘κ·Έλλ°μμ μΆμνλ₯Ό μν μ€μν κ°λ μ€ νλμ λλ€. μ£Όλ‘ μΆμ λ©μλμ μμ(static final λ³μ)λ₯Ό μ μνλ©°, λ€λ₯Έ ν΄λμ€μμ ν΄λΉ μΈν°νμ΄μ€λ₯Ό ꡬν(Implement)νμ¬ μ¬μ©ν©λλ€. μΈν°νμ΄μ€μ νΉμ§ 1) μΆμ λ©μλμ μ§ν© μΈν°νμ΄μ€λ μΆμ λ©μλ(λ³Έμ²΄κ° μλ λ©μλ)λ₯Ό μ μν μ μμ΅λλ€. μ΄ λ©μλλ ꡬνμ΄ μκ³ , ν΄λΉ μΈν°νμ΄μ€λ₯Ό ꡬννλ ν΄λμ€μμ ꡬνν΄μΌ ν©λλ€. 2) ꡬν(Implement) μΈν°νμ΄μ€λ₯Ό ꡬννλ ν΄λμ€λ implements ν€μλλ₯Ό μ¬μ©ν©λλ€. ν΄λμ€μμλ μΈν°νμ΄μ€μμ μ μν λͺ¨λ μΆμ λ©μλλ₯Ό ꡬνν΄μΌ ν©λλ€. μ¬λ¬ μΈν°νμ΄μ€λ₯Ό λμμ ꡬνν μ μμ΅λλ€. 3) λ€μ€ μμ(Multiple Inheritance).. 2024. 1. 20. 18 Polymorphism λ€νμ±(Polymorphism)μ κ°μ²΄ μ§ν₯ νλ‘κ·Έλλ°(OOP)μμμ μ€μν κ°λ μ€ νλλ‘, λμΌν μ½λκ° μ¬λ¬ νμ μ κ°μ²΄μμ λ€λ₯΄κ² λμν μ μλ λ₯λ ₯μ μλ―Έν©λλ€. λ€νμ±μ μ½λμ μ μ°μ±μ λμ΄κ³ κ°μ²΄ κ°μ κ΄κ³λ₯Ό κ°κ²°νκ² νννλ λ° κΈ°μ¬ν©λλ€. - λΆλͺ¨ νμ μΌλ‘ μμ νμ μ κ°μ²΄ μ°Έμ‘° κ°λ₯ (리λͺ¨μ»¨ κ°μκ° μμΌλκΉ) - μμ νμ μΌλ‘ λΆλͺ¨ νμ κ°μ²΄ μ°Έμ‘° λΆκ°λ₯ (리λͺ¨μ»¨ κ°μκ° λ§μΌλκΉ) λ보기 // λ€νμ± - μ¬λ¬κ°μ§ ννλ₯Ό κ°μ§ μ μλ λ₯λ ₯ class Animal { void sound() { System.out.println("Animal makes a sound"); } } class Dog extends Animal { void sound() { System.out.println(.. 2024. 1. 20. 17 Abstraction κ°μ²΄ μ§ν₯ νλ‘κ·Έλλ° (OOP)μμ "μΆμν(Abstractization)"λ 볡μ‘ν μμ€ν μ΄λ κ°λ μ κ°μΆλ € νννλ νλ‘μΈμ€λ₯Ό μλ―Έν©λλ€. μ΄λ κ°μ²΄ μ§ν₯ νλ‘κ·Έλλ°μ ν΅μ¬ μμΉ μ€ νλλ‘, ν΄λμ€λ κ°μ²΄λ₯Ό μ μν λ λΆνμν μΈλΆ μ¬νμ μ κ±°νκ³ μ€μν νΉμ§μ μ§μ€ν¨μΌλ‘μ¨ μ½λμ μ΄ν΄μ μ μ§λ³΄μλ₯Ό μ½κ² λ§λλλ€. μΆμνμ μ£Όμ νΉμ§ μΌλ°ν(Generalization): μΆμνλ μ¬λ¬ κ°μ²΄λ κ°λ μμ 곡ν΅λ νΉμ§μ λμΆνμ¬ μΌλ°μ μΈ ν΄λμ€λ μΈν°νμ΄μ€λ‘ μ μν©λλ€. μ΄λ‘μ¨ μ½λμ μ¬μ¬μ©μ±μ΄ λμμ§κ³ κ³μΈ΅μ μΈ κ΅¬μ‘°λ₯Ό νμ±ν μ μμ΅λλ€. μ¨κΉ(Hiding): μΆμνλ λΆνμν μΈλΆ μ¬νμ μ¨κΈ°κ³ μ€μν λΆλΆλ§μ 곡κ°ν¨μΌλ‘μ¨ μΈλΆμ λ ΈμΆλλ μ 보λ₯Ό μ νν©λλ€. μ΄λ μ 보 μλμ μμΉμ λ°λ¦ λλ€. λͺ¨λΈλ§(.. 2024. 1. 20. 16 Composition relationship νλ‘κ·Έλλ°μμμ "Composite relationship"μ "μμ(Inheritance)"μ κ°μ²΄ μ§ν₯ νλ‘κ·Έλλ°(OOP)μμ κ°μ²΄ κ°μ κ΄κ³λ₯Ό μ€λͺ νλ λ κ°μ§ λ€λ₯Έ κ°λ μ λλ€. Composite relationshipμ μΌλ°μ μΌλ‘ κ°μ²΄λ€ κ°μ "has-a" κ΄κ³λ₯Ό λνλ΄λ λ° μ¬μ©λλ©°, μ΄λ ν κ°μ²΄κ° λ€λ₯Έ κ°μ²΄λ₯Ό ν¬ν¨νκ±°λ κ·Έ μΌλΆλ‘μ μ‘΄μ¬ν¨μ μλ―Έν©λλ€. λ°λ©΄μ μμμ "is-a" κ΄κ³λ₯Ό λνλ΄λ©°, κ°μ²΄ κ°μ μΌλ°νμ νΉμνλ₯Ό λνλ λλ€. Aλ Bλ€ (A is B) → Inheritance (10%) Aλ Bλ₯Ό κ°μ§κ³ μλ€ (A has B) → Composition (90%) λ보기 // λΆλΆ κ°μ²΄ class Engine { void start() { System.out.println("Eng.. 2024. 1. 20. μ΄μ 1 2 3 4 5 6 7 8 Β·Β·Β· 15 λ€μ