μ€λ²λ‘λ©
ν ν΄λμ€ λ΄μ κ°μ μ΄λ¦μ λ©μλλ₯Ό μ¬λ¬κ° μ μνλ κ²μ ‘λ©μλ μ€λ²λ‘λ©(method overloading)’ λλ κ°λ¨ν ‘μ€λ²λ‘λ©(overloading)’μ΄λΌ νλ€.
overloadingμ μ¬μ μ μλ―Έ → κ³Όμ νλ€. μ¦, λ§μ΄ μ£λ κ²μ λ»νλ€.
μ€λ²λ‘λ©μ 쑰건
1οΈβ£ λ©μλ μ΄λ¦μ΄ κ°μμΌ νλ€.
2οΈβ£ 맀κ°λ³μμ κ°μ λλ νμ μ΄ λ¬λΌμΌ νλ€.
μ€λ²λ‘λ© μ±λ¦½β
int add(int a, int b) { return a + b; }
int add(int x, int y) { return x + y; }
맀κ°λ³μμ μ΄λ¦λ§ λ€λ₯Ό λΏ λ§€κ°λ³μμ νμ μ΄ κ°κΈ° λλ¬Έμ μ€λ²λ‘λ©μ΄ μ±λ¦½νμ§ μλλ€.
μ€λ²λ‘λ© μ±λ¦½β
int add(int a, int b) { return a + b; }
long add(int a, int b) { return (long)(a + b); }
add(3,3) κ³Ό κ°μ΄ νΈμΆν΄λ λ νΈμΆν κ±΄μ§ μ μ μκΈ° λλ¬Έμ μ±λ¦½μ΄ μλλ€.
μ»΄νμΌμ νλ©΄
add(int, int) is already defined(μ΄λ―Έ κ°μ λ©μλκ° μ μλμ΄ μλ€.)
λΌλ μλ¬ λ©μΈμ§κ° λ¬λ€.
μ€λ²λ‘λ© μ±λ¦½β
int add(int a, int b) { return a + b; }
long add(long a, long b) { return (long)(a + b); }
add(3, 3L) → 첫 λ²μ§Έ λ©μλ νΈμΆ
add(3L, 3) → λ λ²μ§Έ λ©μλ νΈμΆ
add(3,3)μ λΆκ°λ₯νλ€.
→ μ΄λ€ κ±Έ νΈμΆνλμ§ μ μ μκΈ° λλ¬Έμ νΈμΆνμ§ λͺ»νλ€.
μ€λ²λ‘λ© μ₯μ
μ€λ²λ‘λ©μ΄ μλ€λ©΄ μ΄λ¦μ μ§κΈ° μ΄λ ΅κ³ , λ©μλλ₯Ό μ¬μ©νλ μͺ½μμλ μ΄λ¦μ μΌμΌμ΄ ꡬλΆν΄μ κΈ°μ΅ν΄μΌ νκΈ° λλ¬Έμ λΆλ΄μ΄ λλ€. (λ³μλͺ , λ©μλλͺ μ§λκ² μΈμ μ΄λ €μ T.T)
→ κΈ°μ΅νκΈ° μ½κ³ , μ΄λ¦λ μ§§κ² ν μ μλ€.
κ·Έλ¦¬κ³ λ©μλμ μ΄λ¦μ μ μ½ν μ μλ€.
κ°λ³μΈμ(varargs)μ μ€λ²λ‘λ©
κ°λ³μΈμ(variable argument) : ν¨μλ λ©μλκ° νΈμΆλ λ μ λ¬λλ μΈμμ κ°μκ° μΌμ νμ§ μμ κ²½μ°λ₯Ό λ§νλ€.
κ°λ³μΈμλ ‘νμ … λ³μλͺ ’κ³Ό κ°μ νμμΌλ‘ μ μΈνλ©°, PrintStreamν΄λμ€μ printf()κ° λνμ μΈ μμ΄λ€.
public PrintStream printf(String format, Object... args) { ... }
κ°λ³μΈμλ μ μΌ λ§μ§λ§μ μ μΈν΄μΌ νλ€.
String concatenate (String s1) { ... }
String concatenate (String s1, String s2) { ... }
String concatenate (String s1, String s2, String s3) { ... }
String concatenate (String s1, String s2, String s3, String s4) { ... }
μμ κ°μ λ©μλλ₯Ό κ°λ³μΈμλ₯Ό ν΅ν΄ κ°λ¨ν λνλΌ μ μλ€.
String concatemate(String... arr) { ... } // κ°λ³μΈμλ₯Ό μ¬μ©νλ©΄ 맀κ°λ³μλ₯Ό μλ΅ν μ μλ€.
κ°λ³μΈμλ λ΄λΆμ μΌλ‘ λ°°μ΄μ μ΄μ©νλ κ²μ΄λ€.
κ·Έλμ κ°λ³μΈμκ° μ μΈλ λ©μλλ₯Ό νΈμΆν λλ§λ€ λ°°μ΄μ΄ μλ‘ μμ±λλ€.
κ°λ³μΈμκ° νΈλ¦¬νμ§λ§, μ΄λ° λΉν¨μ¨μ΄ μ¨μ΄μμΌλ―λ‘ κΌ νμν κ²½μ°μλ§ κ°λ³μΈμλ₯Ό μ¬μ©νλ κ²μ΄ μ’λ€.
κ·Έλ¦¬κ³ κ°λ₯νλ©΄ κ°λ³μΈμλ₯Ό μ¬μ©ν λ©μλλ μ€λ²λ‘λ©νμ§ μλ κ²μ΄ μ’λ€.
μ?
1.μ€λ²λ‘λ©μ λͺ©μ κ³Ό μΆ©λ
2.μ±λ₯ λ¬Έμ
κ°λ³ μΈμλ₯Ό μ¬μ©ν λ©μλλ μ»΄νμΌλ¬κ° μλμΌλ‘ λ°°μ΄μ μμ±νκ³ , ν΄λΉ λ°°μ΄μ 맀κ°λ³μλ‘ μ λ¬νλ€.
κ·Όλ° μ΄ κ³Όμ μμ μΆκ°μ μΈ λ©λͺ¨λ¦¬ ν λΉκ³Ό 볡μ¬κ° λ°μνκΈ° λλ¬Έμ μ±λ₯μ΄ μ νλ μ μλ€.
3.μ½λμ 볡μ‘μ± μ¦κ°
κ°λ³ μΈμλ₯Ό μ¬μ©ν λ©μλλ₯Ό μ€λ²λ‘λ©νλ©΄, 맀κ°λ³μμ κ°μμ νμ μ κ³ λ €νμ¬ μ μ ν λ©μλλ₯Ό μ νν΄μΌ νκΈ° λλ¬Έμ μ½λμ 볡μ‘μ±μ΄ μ¦κ°ν μ μλ€.
4.μ μ§λ³΄μμ μ΄λ €μ
κ°λ³ μΈμλ₯Ό μ¬μ©ν λ©μλλ₯Ό μ€λ²λ‘λ©νλ©΄, 맀κ°λ³μμ κ°μμ νμ μ΄ λ³κ²½λ λλ§λ€ λͺ¨λ μ€λ²λ‘λ©λ λ©μλλ₯Ό μμ ν΄μΌ νκΈ° λλ¬Έμ μ μ§λ³΄μκ° μ΄λ €μΈ μ μλ€.
μ΄λ¬ν μ΄μ λ‘ κ°λ³ μΈμλ₯Ό μ¬μ©ν λ©μλλ μ€λ²λ‘λ©νμ§ μλ κ²μ΄ μ’λ€κ³ νλλ° μμ§ 100νΌμΌνΈ μ΄ν΄κ° μ λλ€ γ γ