Java - Method overloading

2019년 03월 14일

Method Overloading

Same named method and different number of parameters.

  • 예제1 - 숫자들의 sum 구하기

    • 안 좋은 예
    public static int sumTwoNum(int a, int b) {
      return a + b;
    }
    
    public static int sumThreeNum(int a, int b, int c) {
      return a + b + c;
    }
    
    public static int sumFourNum(int a, int b, int c, int d) {
      return a + b + c + d;
    }

    메소드 이름이 다 다르기 때문에 복잡하고 기억하기 어렵다.

    • Overloading
    public static int sum(int a, int b) {
      return a + b;
    }
    
    public static int sum(int a, int b, int c) {
      return a + b + c;
    }
    
    public static int sum(int a, int b, int c, int d) {
      return a + b + c + d;
    }

    Overloading하면 읽기 쉽고 기억하기 훨씬 쉽다.

  • 예제2
package com.Hazel;

public class Main {

    public static void main(String[] args) {
        calcFeetAndInchesToCentimeters(50);
    }

    public static double calcFeetAndInchesToCentimeters(double feet, double inches) {
        if(feet < 0 || inches < 0 || inches > 12) {
            return -1;
        }

        double centimeters = feet * 12 * 2.54;
        centimeters += inches * 2.54;
        System.out.println(feet + " feet and " + inches + " inches = " + centimeters + " centimeters" );
        return centimeters;
    }

    public static double calcFeetAndInchesToCentimeters(double inches) {
        if(inches < 0) {
            return -1;
        }
        double feet = (int) inches / 12;
        double remain =  inches % 12;
        System.out.println(inches + " is equal to " +  feet + " feet and " + remain + " inches" );
        return calcFeetAndInchesToCentimeters(feet, remain);
    }

}