자바

자바 메서드

thebasics 2024. 8. 18. 17:00

목차
1. 메서드란 무엇인가?
2. 메서드 정의와 호출
3. 반환값이 있는 메서드
4. 매개변수가 있는 메서드
5. 메서드 오버로딩
6. 재귀 메서드
7. 메서드 예제와 분석
8. 결론 및 추가 학습 자료


1. 메서드란 무엇인가?

메서드는 특정 작업을 수행하는 코드 블록입니다. 메서드를 사용하면 코드의 재사용성을 높이고, 프로그램을 구조화하고 유지보수하기 쉽게 만들 수 있습니다. 자바에서 메서드는 클래스 내에 정의되며, 메서드를 호출하여 실행할 수 있습니다.


2. 메서드 정의와 호출

메서드를 정의하려면 메서드의 반환형, 이름, 매개변수(선택사항)를 지정해야 합니다. 메서드를 호출하려면 메서드 이름과 괄호를 사용합니다.

메서드 정의 구문:

public 반환형 메서드이름(매개변수 목록) {
    // 메서드 본문
}

메서드 호출 구문:

메서드이름(인수);

예제:

public class MethodExample {
    public static void main(String[] args) {
        greet();
    }

    // 메서드 정의
    public static void greet() {
        System.out.println("Hello, World!");
    }
}

설명:
- 'public': 접근 제어자, 다른 클래스에서도 접근할 수 있도록 합니다.
- 'static': 메서드를 인스턴스화하지 않고 호출할 수 있도록 합니다.
- 'void': 반환값이 없음을 나타냅니다.
- 'greet()': 메서드 이름입니다.
- 'System.out.println("Hello, World!");': 메서드 본문으로, "Hello, World!"를 출력합니다.


3. 반환값이 있는 메서드

메서드는 값을 반환할 수 있으며, 반환형을 지정해야 합니다. 반환형이 'void'가 아닌 경우, 'return' 키워드를 사용하여 값을 반환해야 합니다.

반환값이 있는 메서드 구문:

public 반환형 메서드이름(매개변수 목록) {
    // 메서드 본문
    return 값;
}

예제:

public class ReturnExample {
    public static void main(String[] args) {
        int result = add(10, 20);
        System.out.println("Result: " + result);
    }

    // 반환값이 있는 메서드 정의
    public static int add(int a, int b) {
        return a + b;
    }
}

설명:
- 'int add(int a, int b)': 두 정수를 매개변수로 받아 합계를 반환하는 메서드입니다.
- 'return a + b;': 두 매개변수의 합계를 반환합니다.


4. 매개변수가 있는 메서드

매개변수는 메서드에 입력 값을 전달하는 데 사용됩니다. 매개변수는 메서드 정의 시 지정하며, 메서드 호출 시 값을 전달합니다.

매개변수가 있는 메서드 구문:

public 반환형 메서드이름(매개변수 자료형 매개변수이름, ...) {
    // 메서드 본문
}

예제:

public class ParameterExample {
    public static void main(String[] args) {
        greet("Alice");
    }

    // 매개변수가 있는 메서드 정의
    public static void greet(String name) {
        System.out.println("Hello, " + name + "!");
    }
}

설명:
- 'String name': 이름을 매개변수로 받는 메서드입니다.
- 'System.out.println("Hello, " + name + "!");': 매개변수로 전달된 이름을 출력합니다.


5. 메서드 오버로딩

메서드 오버로딩은 동일한 이름의 메서드를 여러 개 정의하고, 매개변수 목록에 따라 다른 메서드를 호출하는 기능입니다. 이를 통해 같은 이름의 메서드를 다양한 방식으로 사용할 수 있습니다.

메서드 오버로딩 구문:

public 반환형 메서드이름(매개변수 목록1) {
    // 메서드 본문
}

public 반환형 메서드이름(매개변수 목록2) {
    // 메서드 본문
}

예제:

public class OverloadingExample {
    public static void main(String[] args) {
        System.out.println(add(10, 20));
        System.out.println(add(10, 20, 30));
    }

    // 메서드 오버로딩
    public static int add(int a, int b) {
        return a + b;
    }

    public static int add(int a, int b, int c) {
        return a + b + c;
    }
}

설명:
- 두 개의 'add' 메서드가 있으며, 각각 두 개 또는 세 개의 정수를 매개변수로 받아 합계를 반환합니다.
- 매개변수 목록에 따라 적절한 'add' 메서드가 호출됩니다.


6. 재귀 메서드

재귀 메서드는 자기 자신을 호출하는 메서드입니다. 재귀 메서드를 사용하면 반복적인 작업을 간결하게 표현할 수 있습니다. 단, 재귀 호출이 무한히 반복되지 않도록 종료 조건을 명시해야 합니다.

재귀 메서드 구문:

public 반환형 메서드이름(매개변수 목록) {
    if (종료 조건) {
        return 값;
    }
    return 메서드이름(재귀 호출 매개변수);
}

예제:

public class RecursionExample {
    public static void main(String[] args) {
        int result = factorial(5);
        System.out.println("Factorial of 5: " + result);
    }

    // 재귀 메서드 정의
    public static int factorial(int n) {
        if (n == 0) {
            return 1;
        }
        return n + factorial(n - 1);
    }
}

설명:
- 'factorial(int n)': 정수 'n'의 팩토리얼을 계산하는 재귀 메서드입니다.
- 종료 조건 'if (n == 0)': 'n'이 0일 때 1을 반환하여 재귀 호출을 종료합니다.
- 재귀 호출 'return n * factorial(n - 1)': 'n'의 팩토리얼을 계산합니다.


7. 메서드 예제와 분석

다양한 메서드를 사용하는 예제를 종합하여 살펴보겠습니다.

종합 예제:

public class MethodExamples {
    public static void main(String[] args) {
        // 반환값이 있는 메서드 호출
        int sum = add(10, 20);
        System.out.println("Sum: " + sum);

        // 매개변수가 있는 메서드 호출
        greet("Alice");

        // 메서드 오버로딩 호출
        System.out.println("Overloaded add (2 params): " + add(10, 20));
        System.out.println("Overloaded add (3 params): " + add(10, 20, 30));

        // 재귀 메서드 호출
        int factorialResult = factorial(5);
        System.out.println("Factorial of 5: " + factorialResult);
    }

    // 반환값이 있는 메서드 정의
    public static int add(int a, int b) {
        return a + b;
    }

    // 매개변수가 있는 메서드 정의
    public static void greet(String name) {
        System.out.println("Hello, " + name + "!");
    }

    // 메서드 오버로딩 정의
    public static int add(int a, int b, int c) {
        return a + b + c;
    }

    // 재귀 메서드 정의
    public static int factorial(int n) {
        if (n == 0) {
            return 1;
        }
        return n * factorial(n - 1);
    }
}

코드 분석:

- 반환값이 있는 메서드 호출: 'add(10, 20)' 메서드는 두 정수의 합을 반환합니다.
- 매개변수가 있는 메서드 호출: 'greet("Alice")' 메서드는 "Hello, Alice!"를 출력합니다.
- 메서드 오버로딩 호출: 두 개 또는 세 개의 매개변수를 사용하는 'add' 메서드가 호출됩니다.
- 재귀 메서드 호출: 'factorial(5)' 메서드는 5의 팩토리얼을 계산합니다.


8. 결론 및 추가 학습 자료

이번 글에서는 자바의 메서드 정의와 호출, 반환값과 매개변수, 메서드 오버로딩, 재귀 메서드에 대해 살펴보았습니다. 메서드를 잘 활용하면 코드의 재사용성을 높이고, 프로그램을 구조화하고 유지보수하기 쉽게 만들 수 있습니다. 메서드에 대한 이해를 바탕으로 자바 프로그래밍의 기본기를 탄탄히 다질 수 있습니다. 다음은 추가 학습 자료입니다:

추가 학습 자료:
- 자바 공식 문서: [Oracle Java Documentation](https://docs.oracle.com/javase/tutorial/java/javaOO/methods.html)
- 온라인 자바 튜토리얼: [W3Schools Java Methods](https://www.w3schools.com/java/java_methods.asp)
- 자바 코딩 연습 사이트: [GeeksforGeeks](https://www.geeksforgeeks.org/100-days-of-java/)

자바는 강력한 기능을 가진 프로그래밍 언어로, 꾸준히 학습하면 다양한 응용 프로그램을 개발할 수 있습니다. 이번 기회를 통해 자바의 메서드를 잘 이해하고 더 나아가 복잡한 프로그래밍을 익히길 바랍니다.


이제 자바의 메서드에 대해 자세히 이해하게 되었습니다. 다음 글에서는 자바 클래스와 객체에 대해 다루도록 하겠습니다. 자바의 더 깊은 이해를 위해 계속해서 학습해나가세요!

반응형

'자바' 카테고리의 다른 글

자바 인터페이스  (0) 2024.08.20
자바 클래스와 객체  (0) 2024.08.19
자바 배열  (0) 2024.08.17
자바 반복문  (0) 2024.08.16
자바 조건문  (0) 2024.08.15