[Java] μμ
- -
μ€λμ μμμλν΄μ ν¬μ€ν μ ν κ²λλ€.γ γ
Javaλ₯Ό 곡λΆνλ μ€ νλ‘κ·Έλ¨μ 지λ μμννΈμ λν μ΄ν΄κ° λ§μ΄ λΆμ‘±ν κ² κ°μ
μ κ° λ³΅μ΅ ν κ²Έ 곡λΆνλ μ§μμ λ°νμΌλ‘ μλ£λ₯Ό μ°Έκ³ ν΄κ°λ©°, κΈμ ν¬μ€ν νμ΄μ.
κ·ΈλΌ Start
κ°μ²΄ μ§ν₯μμμ μμ
λΆλͺ¨ ν΄λμ€μ μ μλ νλμ λ©μλλ₯Ό μμ ν΄λμ€κ° λ¬Όλ €λ°λ κ²
λΆλͺ¨ ν΄λμ€ -> μνΌ ν΄λμ€, μμ ν΄λμ€ -> μλΈ ν΄λμ€
μμμ νμμ±
βΆ ν΄λμ€ μ¬μ΄μ λ©€λ² μ€λ³΅ μ μΈ λΆνμ
βΆ νλμ λ©μλ μ¬μ¬μ©μΌλ‘ ν΄λμ€ κ°κ²°ν
βΆ ν΄λμ€ κ° κ³μΈ΅μ λΆλ₯ λ° μ 리
*μμμ μΈ: extends
βΆ μνΌ ν΄λμ€ Person public class Person
βΆ μλΈ ν΄λμ€ Student -> public class Student extends Person
μλ° μμμ νΉμ§
βΆ μλ°μμλ λ€μ€ μμμ μ§μνμ§ μλλ€.
βΆ μλ°μμλ μμμ νμμ μ νμ λμ§ μλλ€.
βΆ μλ°μμ κ³μΈ΅ ꡬ쑰μ μ΅μμ ν΄λμ€λ java.lagn.Object ν΄λμ€μ΄λ€.
<μνΌ ν΄λμ€ λ©€λ²μ μ κ·Ό μ§μ μ>
βΆ private: μνΌ ν΄λμ€ λ©€λ²κ° privateλ‘ μ μΈλλ©΄ μλΈν΄λμ€λ μκΈ° λ©€λ²κ°μ΄ μ¬μ© κ°λ₯
βΆ protected: κ°μ ν¨ν€μ§μ μν λ€λ₯Έ ν΄λμ€μ μ κ·Ό νμ©.
κ°μ ν¨ν€μ§λ λ€λ₯Έ ν¨ν€μ§λ μμλ°λ μλΈ ν΄λμ€μ μ κ·Ό νμ©.
βΆ public: μ΄λ€ ν΄λμ€μμλ μ κ·Ό κ°λ₯(κ°μ ν¨ν€μ§λ μλλ μκ΄X)
βΆ default: μλΈν΄λμ€μ΄λ μλλ κ°μ ν¨ν€μ§ ν΄λμ€ μ λΆ λ€ μ κ·Ό κ°λ₯
super()λ₯Ό μ¬μ©νμ¬ λͺ μμ μΌλ‘ μνΌ ν΄λμ€μ μμ±μ νΈμΆ
μλΈ ν΄λμ€μ μμ±μμμ μνΌ ν΄λμ€ μμ±μμ νΈμΆμ λͺ μμ μΌλ‘ μ ννλ ν€μλλ super()μ΄λ€.
super()λ μνΌ ν΄λμ€ μμ±μμ νΈμΆμ μλ―Ένκ³ , λ§€κ° λ³μκ° μλ κ²½μ°λ λ§€κ° λ³μ 리μ€νΈλ₯Ό μ λλ€.
μΊμ€ν (casting)
βΆ κ°λ°μκ° νλ‘κ·Έλ¨ μ½λλ‘ ννλ κ°μ νμ λ³ν
βΆ μ μΊμ€ν (upcasting),
μλΈ ν΄λμ€ κ°μ²΄κ° μνΌ ν΄λμ€ νμ μΌλ‘ λ³νλλ κ²
ex) Person p;
Student s = new Student();
p = s; // μ μΊμ€ν , μλ νμ λ³ν
λ€μ΄μΊμ€ν (downcasting)
βΆ μ μΊμ€ν μΌλ‘ λ³νλ κ²μ μλλλ‘ λλ리λ κ². (μ μΊμ€ν κ³Ό λ¬λ¦¬ λͺ μμ μΌλ‘ νμ μ μ§μ ν΄μΌν¨.)
ex)Student s = (Student)p; //λ€μ΄μΊμ€ν , κ°μ νμ λ³ν
instanceof μ°μ°μμ κ°μ²΄ ꡬλ³
βΆ instanceof: λ νΌλ°μ€κ° κ°λ¦¬ν€λ μ€μ κ°μ²΄κ° μ΄λ€ ν΄λμ€ νμ μΈμ§ ꡬλΆνκΈ° μν΄ μ¬μ©
βΆ booleanνμΌλ‘ λ€μκ³Ό κ°μ΄ μ¬μ© [κ°μ²΄ λ νΌλ°μ€ instanceof ν΄λμ€ νμ ]
λ©μλ μ€λ²λΌμ΄λ©
βΆ μνΌν΄λμ€μ μλΈν΄λμ€μ λ©μλ μ¬μ΄μ λ°μνλ κ΄κ³.
μνΌ ν΄λμ€μ λ©μλλ₯Ό λμΌν μ΄λ¦μΌλ‘ μλΈ ν΄λμ€μμ μ¬μμ±νλ κ².
λ©μλ μ€λ²λΌμ΄λ© 쑰건
βΆ λ©μλ μ€λ²λΌμ΄λ©μ μνΌ ν΄λμ€μ λ©μλμ μμ ν λμΌν λ©μλλ₯Ό μ¬μ μ νλ€.
βΆ λ©μλ μ€λ²λΌμ΄λ© μμ μνΌ ν΄λμ€ λ©μλμ μ κ·Ό μ§μ μλ³΄λ€ μ κ·Όμ λ²μκ° μ’μμ§ μ μλ€.
βΆ λ©μλ μ€λ²λΌμ΄λ©μμ λ©μλ μ΄λ¦, λ§€κ° λ³μ 리μ€νΈλ κ°μΌλ λ¦¬ν΄ νμ λ§ λ€λ₯Ό μ μλ€.
βΆ static, private, finalλ‘ μ μΈλ λ©μλλ μ€λ²λΌμ΄λ©λ μ μλ€.
μ€λ²λ‘λ©(overloading)κ³Ό μ€λ²λΌμ΄λ©(overriding)
βΆ μ€λ²λΌμ΄λ©
μνΌν΄λμ€μ λ©μλμ μ΄λ¦, 맀κ°λ³μνμ , 맀κ°λ³μ리μ€νΈ, λ¦¬ν΄ νμ λ±μ΄ λͺ¨λ λμΌν λ©μλκ° μλΈ ν΄λμ€μ μ¬μ μ λμμ κ²½μ°λ₯Ό κ°λ¦¬ν€λ μ©μ΄
βΆ μ€λ²λ‘λ©
ν ν΄λμ€λ μμ κ΄κ³μ μλ ν΄λμ€λ€μμ μλ‘ μΈμμ νμ μ΄ λ€λ₯΄κ±°λ μΈμμ κ°μκ° λ€λ₯Έ μ¬λ¬ κ°μ λμΌν μ΄λ¦μ λ©μλκ° μμ±λλ κ²μ μ§μΉ
μΆμ λ©μλ & ν΄λμ€
βΆ μΆμ λ©μλ
- μ μΈμ λμ΄ μμΌλ μ½λκ° κ΅¬νλμ΄ μμ§ μμ, κ»λ°κΈ°λ§ μλ λ©μλ.
- abstract ν€μλμ ν¨κ» λ©μλμ νμ , μ΄λ¦, λ§€κ° λ³μ 리μ€νΈλ§ μ μΈν΄μΌ ν¨
βΆ μΆμ ν΄λμ€
- μΆμ λ©μλμ λ§μ°¬κ°μ§λ‘ abstract ν€μλλ‘ μ μΈν ν΄λμ€.
>>μΆμ ν΄λμ€κ° λλ κ²½μ°λ λ°μ λκ°μ§.
- μΆμ λ©μλλ₯Ό ν¬ν¨νλ ν΄λμ€λ‘μ λ°λμ abstractλ‘ μ μΈλμ΄μΌ ν¨.
- μΆμ λ©μλκ° νλλ μμ§λ§ abstractλ‘ μ μΈν ν΄λμ€
- μΆμ ν΄λμ€λ μΈμ€ν΄μ€λ₯Ό μμ±ν μ μλ€.
μλ° μΈν°νμ΄μ€
μλ°μ μΈν°νμ΄μ€λ μΆμ ν΄λμ€μ μ μ¬νλ©° interface ν€μλλ₯Ό μ¬μ©νμ¬ μ μΈνλ€.
μΈν°νμ΄μ€μ νΉμ§
βΆ λ©€λ²λ μΆμ λ©μλμ μμλ§μΌλ‘ ꡬμ±λλ€.
βΆ λͺ¨λ λ©μλλ publicμ΄λ©° μλ΅μ΄ κ°λ₯νλ€.
βΆ μμλ public static finalμ μλ΅νμ¬ μ μΈν μ μλ€.
βΆ μΈν°νμ΄μ€μ κ°μ²΄λ₯Ό μμ±ν μ μλ€.
βΆ λ€λ₯Έ μΈν°νμ΄μ€μ μμλ μ μλ€.
βΆ μΈν°νμ΄μ€λ λ νΌλ°μ€ λ³μμ νμ μΌλ‘ μ¬μ© κ°λ₯νλ€.
μΈν°νμ΄μ€ μμ
ν΄λμ€λ μΈν°νμ΄μ€λ₯Ό μμλ°μ μ μκ³ μ€μ§ μΈν°νμ΄μ€λ§μ΄ μμμ΄ κ°λ₯νλ€.
ν΄λμ€μ λ€μ€ μμμ μ§μνμ§ μμΌλ, μΈν°νμ΄μ€μ λ€μ€ μμμ νμ©νλ€.
μΈν°νμ΄μ€ μμ μ extends ν€μλλ₯Ό μ¬μ©νλ€.
μΈν°νμ΄μ€ ꡬν
μΈν°νμ΄μ€μ μΆμ λ©μλλ₯Ό ν΄λμ€μμ ꡬννλ κ²μ λ§ν¨. implementsλΌλ ν€μλλ₯Ό μ¬μ©ν΄ ν΄λμ€λ₯Ό μμ±. μ΄λ ν΄λμ€λ λ°λμ μΈν°νμ΄μ€μ λͺ¨λ μΆμ λ©μλλ₯Ό ꡬνν΄μΌνλ€.
μΈν°νμ΄μ€μ λ€μ€ ꡬν
ν΄λμ€λ νλ μ΄μμ μΈν°νμ΄μ€ ꡬνμ΄ κ°λ₯νλ©°, μ¬λ¬ κ°μ μΈν°νμ΄μ€λ₯Ό ꡬνν λλ μ½€λ§λ‘ μΈν°νμ΄μ€λ₯Ό ꡬλΆνμ¬ λμ΄νλ©°, κ° μΈν°νμ΄μ€μ μ μλ λͺ¨λ μΆμ λ©μλλ₯Ό ꡬνν΄μΌ νλ€.
<μΈν°νμ΄μ€μ μΆμ ν΄λμ€>
'Languages > JAVA' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[Java] μλ° APIν΄λμ€ (3) | 2020.04.25 |
---|---|
[Java] Collection-listμμ (0) | 2020.04.25 |
[Java] 컬λ μ (Collection) (0) | 2020.04.21 |
[JavaFx] λΈλ‘ μμ±νκΈ° (0) | 2020.04.20 |
μμ€ν κ³΅κ° κ°μ¬ν©λλ€