자바 메소드에서의 고정값, 고정일, 가변값, 가변일에 대한 이해
자바에서 메소드를 정의할 때, 파라미터와 그 값을 전달하는 방식에는 여러 가지가 있습니다. 이를 잘 이해하는 것은 코드의 효율성을 높이고, 메소드를 작성할 때 유연성을 확보하는 데 중요합니다. 오늘은 자바 메소드에서 고정값 (Fixed Value), 고정일 (Fixed Argument), 가변값 (Variable Value), 가변일 (Variable Argument) 의 차이점과 활용법에 대해 알아보겠습니다.
1. 고정값 (Fixed Value) - 값이 고정된 파라미터
고정값은 메소드 호출 시에 항상 고정된 값을 전달하는 방식입니다. 이때 고정된 값은 메소드를 호출할 때마다 변하지 않으며, 항상 동일한 값으로 처리됩니다.
public class FixedValueExample {
public static void printValue(int value) {
System.out.println("전달된 값은: " + value);
}
public static void main(String[] args) {
printValue(5); // 항상 5라는 값을 전달
}
}
위 코드에서 printValue()
메소드는 항상 고정된 값인 5
를 출력합니다. 이때 value
파라미터는 고정값을 가집니다.
2. 고정일 (Fixed Argument) - 메소드 정의에서 고정된 파라미터
고정일은 메소드 정의에서 고정된 파라미터를 의미합니다. 즉, 메소드 호출 시 해당 파라미터는 고정되어 있어, 항상 특정 값의 자료형과 순서를 따릅니다. 고정일은 메소드 시그니처에 명시된 파라미터에 해당하며, 메소드를 호출할 때 반드시 값이 전달되어야 합니다.
public class FixedArgumentExample {
public static void displayInfo(String name, int age) {
System.out.println("이름: " + name + ", 나이: " + age);
}
public static void main(String[] args) {
displayInfo("홍길동", 25); // "홍길동", 25가 고정된 파라미터로 전달됨
}
}
이 경우, displayInfo
메소드에서 name
과 age
는 고정된 파라미터로 정의되어 있으며, 메소드를 호출할 때 반드시 두 값이 전달됩니다.
3. 가변값 (Variable Value) - 메소드 호출 시 전달되는 값이 가변적
가변값은 메소드 호출 시 전달되는 값이 여러 개일 수 있음을 의미합니다. 이는 메소드 내부에서 전달된 값의 개수를 동적으로 처리할 수 있도록 합니다. 자바에서는 가변 인자(variable-length arguments)를 사용하여 이를 구현할 수 있습니다.
public class VariableValueExample {
public static void sumNumbers(int... numbers) { // '...'는 가변 인자를 의미
int sum = 0;
for (int num : numbers) {
sum += num;
}
System.out.println("합계: " + sum);
}
public static void main(String[] args) {
sumNumbers(1, 2, 3); // 1 + 2 + 3 = 6
sumNumbers(4, 5, 6, 7, 8); // 4 + 5 + 6 + 7 + 8 = 30
}
}
위 코드에서 sumNumbers
메소드는 가변 인자를 사용하여 전달된 숫자의 개수에 상관없이 모두 더할 수 있습니다. 이렇게 가변값을 사용하면 인자의 개수가 고정되어 있지 않아 유연한 메소드 호출이 가능합니다.
4. 가변일 (Variable Argument) - 메소드 정의에서 가변적인 인자
가변일은 메소드 정의에서 인자의 개수가 가변적이라는 의미입니다. 자바에서는 메소드의 매개변수를 ...
(varargs) 형식으로 사용하여, 여러 개의 인자를 하나의 배열처럼 다룰 수 있습니다. 이와 함께 가변 인자는 항상 마지막에 정의되어야 한다는 규칙이 있습니다.
public class VariableArgumentExample {
public static void displayNumbers(int... numbers) { // 가변 인자
for (int num : numbers) {
System.out.println(num);
}
}
public static void main(String[] args) {
displayNumbers(10, 20, 30); // 3개의 숫자 출력
displayNumbers(1, 2); // 2개의 숫자 출력
}
}
displayNumbers
메소드는 가변 인자를 사용하여, 전달되는 인자 개수에 관계없이 동적으로 숫자를 출력합니다. numbers
는 전달된 값들을 배열 형태로 처리할 수 있습니다.
고정값과 가변값의 차이점
- 고정값 (Fixed Value): 메소드 호출 시 항상 일정한 값이 전달됩니다.
- 고정일 (Fixed Argument): 메소드에서 항상 고정된 수의 파라미터를 요구합니다.
- 가변값 (Variable Value): 메소드 호출 시 전달되는 값의 개수가 유동적이며, 다양한 형태로 값이 전달될 수 있습니다.
- 가변일 (Variable Argument): 메소드에서 매개변수의 개수가 유동적이며, 인자 목록이 배열로 처리됩니다.
결론
자바에서 메소드를 정의할 때, 고정값과 가변값을 적절하게 활용하면 코드의 유연성과 재사용성을 높일 수 있습니다. 특히, 가변 인자(...
)를 사용하면 메소드 호출 시 전달되는 값의 개수를 유동적으로 처리할 수 있어 매우 유용합니다. 하지만 가변 인자는 항상 메소드의 마지막 파라미터로 위치해야 하므로, 이를 염두에 두고 메소드를 작성하는 것이 중요합니다.
'Software > Java' 카테고리의 다른 글
[Java] 접근지정자(Access Modifier) 의 종류와 예제 (1) | 2025.01.31 |
---|---|
[Java] Setter 와 Getter 에 대한 이해 (1) | 2025.01.24 |
[Java] 폴리모피즘(Polymorphism) 이해하기 (1) | 2025.01.23 |
[Java] Escape Character 개념 정리 ( 줄 바꿈, 탭 등 역슬래시 사용 ) (1) | 2025.01.22 |
[Java] Instance Variable (인스턴스 변수)와 Static Variable (클래스 변수) (2) | 2025.01.22 |