2025-10-01
OOP κ°λ μ 리
ν΄λμ€
- 곡ν΅λκΈ°λ₯μ νλλ‘ λ¬Άμ΄μ μ¬μ¬μ©μ±μ λνκΈ°μν λͺ©μ
μμ
- νλμν΄λμ€κ° λ€λ₯Έ ν΄λμ€μ μμ±κ³Ό λ©μλλ₯Ό λ¬Όλ €λ°λ κ²
abstract
- extends(μμ)μ implement(μΈν°νμ΄μ€κ΅¬ν)μΌλ‘ μ¬μ©κ°λ₯
- μμμ κ²½μ° λ€νΈμμλ λ€μ€ μμ λΆκ°λ₯
- μΈν°νμ΄μ€ ꡬνμ λ€μ€ ꡬν κ°λ₯
interface
- μΆμλ©μλλ‘λ§ μ΄λ£¨μ΄μ§ ν΄λμ€
λ€νμ±
- νλμ κ°μ²΄κ° μ¬λ¬ νμ μ κ°μ§ μ μλ κ²
- μλ₯Ό λ€λ©΄ κ°κ°μ νμ
μ μ μΈν λ
μμ μ ν΄λμ€λ‘ λνλΌ μ μμ§λ§,λΆλͺ¨μ ν΄λμ€λ‘λ λνλ΄λ κ²μ΄ κ°λ₯νλ€.
μ€λ²λ‘λ©(Overloading)
- κ°μ μ΄λ¦μ λ©μλλ₯Ό λ§€κ°λ³μλ§ λ€λ₯΄κ² μ¬λ¬ κ° μ μνλ κ² (μ»΄νμΌνμ λ€νμ±)
μ€λ²λΌμ΄λ©(Overriding)
- μμ κ΄κ³μμ λΆλͺ¨ λ©μλλ₯Ό μ¬μ μνλ κ² (λ°νμ λ€νμ±)
mixin - with
- λ€μ€ μμμ²λΌ μ¬μ©νκΈ°μν΄ λμ¨ κ²
- λ€μ€ μμ μμ΄ ν΄λμ€μ μ¬μ¬μ© κ°λ₯ν κΈ°λ₯ λ¬Άμμ λΌμ λ£λ κΈ°λ²
- μ¬λ¬ ν΄λμ€μ κ³΅ν΅ λμμ 곡μ /μ‘°ν©ν΄ μμ μμ‘΄κ³Ό 볡μ‘λλ₯Ό μ€μ
class ApiClient with Logger, Cacheμ κ°μ΄ withλ₯Ό ν΅ν΄ ꡬν λ©μλ νΉμ μΆμ λ©μλ(μ€λ²λΌμ΄λ© νμ)λ₯Ό μ¬μ¬μ©κ°λ₯
Map
- λ°μ΄ν° λμΉλ₯Ό μννλ©΄μ λ΄κ° μνλ λͺ©μ μ λ§κ² μ¬κ΅¬μ±
- iterableμ λ°ννλ€.
- 보ν΅
toList()λ₯Ό ν΅ν΄ 리μ€νΈν ν΄μ μ¬μ©νλ€. map ((λ§€κ°λ³μ) => μνν λμ);
List<String> fruitList = ['μ¬κ³Ό', 'μ€λ μ§', 'μλ°'];
var delicious = fruitList.map((fruit) {
var word = 'λ§μλ ';
word += fruit;
return word;
});
print(delicious); // (λ§μλ μ¬κ³Ό, λ§μλ μ€λ μ§, λ§μλ μλ°)