본문 바로가기
Java/Java Examples

[Java Examples] Method Overloading in Java

by Henry Cho 2024. 2. 12.
728x90

Method Overloading in Java

포스트 난이도: HOO_Intern


# Example Code

public class ExMethodOverloading {

    // Overloaded method for adding two integers
    public int add(int num1, int num2) {
        return num1 + num2;
    }

    // Overloaded method for adding three integers
    public int add(int num1, int num2, int num3) {
        return num1 + num2 + num3;
    }

    // Overloaded method for adding two doubles
    public double add(double num1, double num2) {
        return num1 + num2;
    }

    // Overloaded method for concatenating two strings
    public String add(String str1, String str2) {
        return str1 + str2;
    }

    // Alternative method for subtracting two integers
    public int subtract(int num1, int num2) {
        return num1 - num2;
    }

    // Alternative method for adding two integers and returning a double
    public double addAsDouble(int num1, int num2) {
        return num1 + num2;
    }
}

public class ExMethodSignatureDemo {

    public static void main(String[] args) {
        // Creating an instance of ExMethodOverloading
        ExMethodOverloading moe = new ExMethodOverloading();
        
        // Example usage with integers
        int a = 10, b = 35;
        System.out.println("Result of adding two integers: " + moe.add(a, b));
        
        // Example usage with doubles
        double c = 29, d = 5;
        System.out.println("Result of adding two doubles: " + moe.add(c, d));
        
        // Example usage with int
        int e = 29, f = 5;
        System.out.println("Result of adding two doubles: " + moe.subtract(e, f));
    }
}

Figure 1. Result of example code


# Explanations

이번 포스트에서는 데이터 타입에 따라 메서드(Methods)를 달리하여 입출력 클래스에서 원하는 메서드를 사용하여 결과를 산출해 내는 예제코드이다. 첫 번째 예제코드를 살펴보면 public static void가 별도로 존재하고 있지 않고 두 번째 예제코드에서 public static void가 존재하는 걸 확인할 수 있다. 또한 두 번째 코드에서는 입출력에 대한 부분만 정의되어 있고 출력을 어떻게 할 것인지에 대해서는 정의가 되어있지 않는 걸 알 수 있다. 한마디로 첫 번째 코드는 데이터 타입에 따라 달리 작성된 메서드만 존재하고 두 번째 코드에서 이를 가져다가 사용하는 방식인 셈이다.

 

두 번째 예제코드에는 double과 int 타입의 숫자를 add, 즉 더하는 메서드를 활용하여 결과를 출력하였고 subtract을 사용해서 integer 타입의 숫자를 뺀 결과를 출력하고 있다. 이 외에도 첫 번째 코드에 선언된 string 메서드를 활용해서 출력 코드에서 이를 활용하여 string 타입의 결과 또한 출력이 가능하다.

 

따라서 이번 예제코드에서 중점적으로 리뷰를 해야될 부분은 여러 코드로 나눠진 클래스와 메서드들을 어떻게 활용하는지에 대해서 파악할 수 있다. 당장 자바를 배울 때는 하나의 코드에 모든 것을 작성하고 산출해 내도 문제가 없지만 실무에서 코드가 길어지거나 다른 개발자와 작업을 하다 보면 클래스별로 코드를 나눠서 작성하고 관리가 이루어지다 보니 이러한 부분에 대해서 배워볼 수 있다.


# github

https://github.com/WhoisHOO/HOOAI/blob/main/Java_examples/method_overloading

https://github.com/WhoisHOO/HOOAI/blob/main/Java_examples/method_overloading_demo


 

728x90

댓글