πŸ—„οΈ Backend/Java

μžλ°”(Java) - 객체 μ§€ν–₯ ν”„λ‘œκ·Έλž˜λ° (5) λ©”μ†Œλ“œ μ˜€λ²„λ‘œλ”©

kongmi 2023. 1. 12. 20:27

λ©”μ†Œλ“œ μ˜€λ²„λ‘œλ”©(method overloading)

같은 μ΄λ¦„μ˜ λ©”μ†Œλ“œλ₯Ό μ€‘λ³΅ν•˜μ—¬ μ •μ˜ν•˜λŠ” 것

λ¬Όλ‘  ν•œ 클래슀 내에 같은 μ΄λ¦„μ˜ λ©”μ†Œλ“œλ₯Ό λ‘˜ 이상 κ°€μ§ˆ 수 μ—†μœΌλ‚˜ λ§€κ°œλ³€μˆ˜μ˜ λ³€μˆ˜ κ°œμˆ˜λ‚˜ νƒ€μž…μ„ λ‹€λ₯΄κ²Œ ν•˜λ©΄, ν•˜λ‚˜μ˜ μ΄λ¦„μœΌλ‘œ λ©”μ†Œλ“œλ₯Ό μž‘μ„±ν•  수 있음.

 

μ΄λŸ¬ν•œ λ©”μ†Œλ“œ μ˜€λ²„λ‘œλ”©μ€ 객체 μ§€ν–₯ ν”„λ‘œκ·Έλž˜λ° νŠΉμ§• 쀑 ν•˜λ‚˜μΈ 'λ‹€ν˜•μ„±(polymorphism)'을 κ΅¬ν˜„ν•˜λŠ” 방법 쀑 ν•˜λ‚˜!!!

μ‰½κ²Œ μ΄ν•΄ν•˜κΈ° μœ„ν•΄... λ©”μ†Œλ“œ μ˜€λ²„λ‘œλ”© λŒ€ν‘œμ μΈ 예둜 println()을 λ“€ 수 있음.

1. println()
2. println(boolean x)
3. println(char x)
4. println(char[] x)
5. println(double x)
6. println(float x)
7. println(int x)
8. println(long x)
9. println(Object x)
10. println(String x)

* 참고둜 Cμ–Έμ–΄λŠ” μ˜€λ²„λ‘œλ”©μ΄ μ•ˆλ˜μ–΄ printf()둜만 좜λ ₯ κ°€λŠ₯함.

λ©”μ†Œλ“œ μ˜€λ²„λ‘œλ”© 쑰건

  1. λ©”μ†Œλ“œμ˜ 이름이 κ°™μ•„μ•Ό 함.
  2. λ§€κ°œλ³€μˆ˜μ˜ 개수 or νƒ€μž…μ΄ 달라야 함. (λ§€κ°œλ³€μˆ˜λŠ” 같은데 λ°˜ν™˜ νƒ€μž…μ΄ λ‹€λ₯Έ 경우 μ˜€λ²„λ‘œλ”© 성립 μ•ˆ 함)

package λ©”μ†Œλ“œμ˜€λ²„λ‘œλ”©0112;

public class MethodOverloading {
    public static void main(String[] args) {
        System.out.println(sum(3 , 4));
        System.out.println(sum(100,85,350));
        System.out.println(sum(3, 4, 1, 2));
        System.out.println(sum("인천","μ„œμšΈ","λΆ€μ‚°"));
        System.out.println(sum(3,"강남",10));
    }

    static int sum(int x, int y) {
        return x + y;
    }

    static int sum(int x, int y, int z) {
        return x + y + z;
    }

    //λ§€κ°œλ³€μˆ˜μ˜ κ°œμˆ˜κ°€ λ‹¬λΌμ„œ μ˜€λ²„λ‘œλ”© κ°€λŠ₯..
    static double sum(int x, int y, int z, int a) {
        return (double)x + y + z + a;
    }

    // λ§€κ°œλ³€μˆ˜μ˜ νƒ€μž…μ΄ λ‹¬λΌμ„œ μ˜€λ²„λ‘œλ”© κ°€λŠ₯..
    static String sum(String x, String y, String z) {
        return x + y + z;
    }

    // λ§€κ°œλ³€μˆ˜μ˜ νƒ€μž… λ˜λŠ” μˆœμ„œκ°€ 달라 κ°€λŠ₯
    static String sum(int x, String y, int z) {
        return x + y + z;
    }
}