IT프로그램 언어/Java

Java(메소드의 매개변수와 반환값, 오버로딩)

필립곽 2024. 12. 16. 09:29
반응형

이번 포스트에서는 메소드의 매개변수와 반환값, 오버로딩(Overloading) 개념에 대하여 설명드리겠습니다.

 

1. 매개변수와 반환값


1.1 매개변수란?
매개변수는 메소드가 호출될 때 외부에서 전달하는 값입니다. 메소드는 이 매개변수를 사용하여 특정 작업을 수행합니다. 매개변수는 메소드 정의에서 괄호 안에 선언되며, 여러 개의 매개변수를 사용할 수 있습니다.

예제 1: 여러 개의 매개변수 사용
public class Calculator {
    // 두 개의 정수를 더하는 메소드
    public int add(int a, int b) {
        return a + b;
    }
    
    // 세 개의 정수를 더하는 메소드
    public int addThreeNumbers(int a, int b, int c) {
        return a + b + c;
    }
    
    public static void main(String[] args) {
        Calculator calc = new Calculator();
        int sum1 = calc.add(5, 10);
        int sum2 = calc.addThreeNumbers(5, 10, 15);
        
        System.out.println("두 개의 정수 합: " + sum1); // 출력: 두 개의 정수 합: 15
        System.out.println("세 개의 정수 합: " + sum2); // 출력: 세 개의 정수 합: 30
    }
}

이 예제에서 add 메소드는 두 개의 정수를 매개변수로 받아 그 합을 반환하고, addThreeNumbers 메소드는 세 개의 정수를 받아 그 합을 반환합니다.

1.2 반환값이란?
반환값은 메소드가 작업을 완료한 후 호출자에게 돌려주는 값입니다. 반환값의 타입은 메소드 선언 시 정의되며, return 키워드를 사용하여 값을 반환합니다.

예제 2: 문자열 반환
public class Greeting {
    // 이름을 매개변수로 받아 인사말을 반환하는 메소드
    public String createGreeting(String name) {
        return "안녕하세요, " + name + "님!";
    }
    
    public static void main(String[] args) {
        Greeting greet = new Greeting();
        String message = greet.createGreeting("홍길동");
        System.out.println(message); // 출력: 안녕하세요, 홍길동님!
    }
}
위의 예제에서는 createGreeting 메소드가 이름을 매개변수로 받아 인사말을 반환합니다. 이를 통해 메소드가 어떻게 값을 반환하는지 이해할 수 있습니다.

 

2. 오버로딩 (Overloading)

 

2.1오버로딩이란?

오버로딩은 같은 이름의 메소드를 여러 개 정의하는 것을 의미합니다. 각 메소드는 매개변수의 타입, 개수 또는 순서가 달라야 합니다. 이를 통해 코드의 가독성을 높이며, 동일한 기능을 다양한 방식으로 사용할 수 있게 합니다.

예제 3: 다양한 매개변수를 가진 오버로딩
public class OverloadExample {
    // 두 개의 정수를 더하는 메소드
    public int add(int a, int b) {
        return a + b;
    }
    
    // 두 개의 실수를 더하는 메소드
    public double add(double a, double b) {
        return a + b;
    }
    
    // 세 개의 정수를 더하는 메소드
    public int add(int a, int b, int c) {
        return a + b + c;
    }
    
    public static void main(String[] args) {
        OverloadExample example = new OverloadExample();
        
        int sum1 = example.add(5, 10); // 정수 더하기
        double sum2 = example.add(5.5, 10.5); // 실수 더하기
        int sum3 = example.add(5, 10, 15); // 세 개의 정수 더하기
        
        System.out.println("두 개의 정수 합: " + sum1); // 출력: 두 개의 정수 합: 15
        System.out.println("두 개의 실수 합: " + sum2); // 출력: 두 개의 실수 합: 16.0
        System.out.println("세 개의 정수 합: " + sum3); // 출력: 세 개의 정수 합: 30
    }
}

이 예제에서는 add 메소드를 세 가지 형태로 정의했습니다. 정수 두 개, 실수 두 개, 정수 세 개를 더하는 각각의 메소드가 있습니다. 이를 통해 오버로딩의 개념을 실제로 구현해 볼 수 있습니다.

예제 4: 오버로딩과 매개변수 타입
오버로딩은 매개변수의 타입에 따라 메소드를 구분할 수 있습니다.
public class OverloadByType {
    // 문자열을 매개변수로 받는 메소드
    public void printValue(String str) {
        System.out.println("문자열: " + str);
    }
    
    // 정수를 매개변수로 받는 메소드
    public void printValue(int num) {
        System.out.println("정수: " + num);
    }
    
    public static void main(String[] args) {
        OverloadByType example = new OverloadByType();
        
        example.printValue("Hello, World!"); // 출력: 문자열: Hello, World!
        example.printValue(100); // 출력: 정수: 100
    }
}
위의 예제에서는 printValue 메소드를 문자열과 정수를 각각 매개변수로 받는 두 가지 형태로 정의했습니다. 이처럼 매개변수의 타입에 따라 메소드를 오버로딩하여 사용할 수 있습니다.

 

3.결론

Java에서 매개변수와 반환값, 오버로딩의 개념을 이해하는 것은 프로그래밍의 기초를 다지는 데 매우 중요합니다. 오늘 배운 내용을 바탕으로 더 복잡한 프로그램을 작성할 수 있는 기초를 마련할 수 있습니다. 

반응형