이번 포스트에서는 메소드의 매개변수와 반환값, 오버로딩(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에서 매개변수와 반환값, 오버로딩의 개념을 이해하는 것은 프로그래밍의 기초를 다지는 데 매우 중요합니다. 오늘 배운 내용을 바탕으로 더 복잡한 프로그램을 작성할 수 있는 기초를 마련할 수 있습니다.
'IT프로그램 언어 > Java' 카테고리의 다른 글
Java(메서드의 정의와 호출) (3) | 2024.12.13 |
---|---|
Java(배열과 문자열) (4) | 2024.12.08 |
Java(조건문, switch문, 반복문) (5) | 2024.12.05 |
Java(프로그램구조,데이타 타입,변수선언,기본 입출력) (6) | 2024.12.03 |
Java(프로그래밍 입문: 소개 및 개발 환경 설정) (4) | 2024.12.02 |