목차
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/)
자바는 강력한 기능을 가진 프로그래밍 언어로, 꾸준히 학습하면 다양한 응용 프로그램을 개발할 수 있습니다. 이번 기회를 통해 자바의 메서드를 잘 이해하고 더 나아가 복잡한 프로그래밍을 익히길 바랍니다.
이제 자바의 메서드에 대해 자세히 이해하게 되었습니다. 다음 글에서는 자바 클래스와 객체에 대해 다루도록 하겠습니다. 자바의 더 깊은 이해를 위해 계속해서 학습해나가세요!