Java 메서드: 정의, 호출, 효과적 활용법
Java 메서드
이 가이드는 Java 메서드 작동 원리, 선언, 호출, 사용자 정의 및 표준 라이브러리 메서드 활용을 명확한 예제와 함께 설명합니다.
Java 메서드란?
메서드는 단일하고 잘 정의된 작업을 수행하는 독립적인 코드 블록입니다. 복잡한 문제를 더 작은 메서드로 분해하면 가독성, 유지보수성, 재사용성이 향상됩니다.
예를 들어 원을 그리고 색칠하기 위해 다음을 만들 수 있습니다:
drawCircle() – 원 윤곽 렌더링.
colorCircle() – 원을 색으로 채우기.
이 모듈식 접근은 코드를 이해하고 확장하기 쉽게 만듭니다.
Java는 두 가지 메서드 범주를 제공합니다:
- 사용자 정의 메서드 – 개발자가 특정 요구사항을 위해 작성.
- 표준 라이브러리 메서드 – Java 표준 라이브러리가 제공하는 사전 구축 유틸리티.
Java 메서드 선언
가장 간단한 선언은 다음과 같습니다:
returnType methodName() {
// 메서드 본문
}
- returnType – 메서드가 반환하는 데이터 타입(예:
int). 반환 값이 없으면 void 사용.
- methodName – 메서드 호출에 사용되는 식별자.
- 메서드 본문 – 메서드 호출 시 실행되는 코드, 중괄호로 감쌈.
예:
int addNumbers() {
// 코드
}
완전한 구문은 한정자, static 키워드, 매개변수를 추가합니다:
modifier static returnType methodName(parameter1, parameter2, ...) {
// 메서드 본문
}
- modifier – 접근 지정자(public, private, protected 등).
- static – 인스턴스 없이 메서드 호출 허용.
- parameters – 메서드에 전달되는 값들.
메서드 호출
선언 후 메서드 이름을 괄호와 함께 사용하여 호출. 예:
addNumbers();
예제 1: 사용자 정의 메서드
class Main {
// 인스턴스 메서드
public int addNumbers(int a, int b) {
int sum = a + b;
return sum;
}
public static void main(String[] args) {
int num1 = 25;
int num2 = 15;
Main obj = new Main();
int result = obj.addNumbers(num1, num2);
System.out.println("Sum is: " + result);
}
}
출력
Sum is: 40
메서드 addNumbers()는 static이 아니므로 객체에서 호출됩니다.
반환 타입
메서드는 return 문으로 값을 반환할 수 있습니다. 반환 값의 타입은 선언된 반환 타입과 일치해야 합니다.
예제 2: 값 반환하는 static 메서드
class Main {
public static int square(int num) {
return num * num;
}
public static void main(String[] args) {
int result = square(10);
System.out.println("10의 제곱값: " + result);
}
}
출력
10의 제곱값: 100
아무것도 반환하지 않아야 하면 반환 타입을 void로 선언:
public void display(int a) {
System.out.println("Value is: " + a);
}
매개변수
매개변수는 호출 시 인수를 받는 메서드 시그니처의 자리표시자입니다. Java는 임의의 개수 매개변수를 허용합니다.
int addNumbers(int a, int b) { /* ... */ }
int addNumbers() { /* ... */ }
예제 3: 서로 다른 매개변수 개수를 가진 메서드
class Main {
public void display1() {
System.out.println("매개변수 없는 메서드");
}
public void display2(int a) {
System.out.println("단일 매개변수 메서드: " + a);
}
public static void main(String[] args) {
Main obj = new Main();
obj.display1();
obj.display2(24);
}
}
출력
매개변수 없는 메서드
단일 매개변수 메서드: 24
Java의 강한 타입 시스템은 각 인수 타입이 해당 매개변수와 일치함을 보장합니다.
표준 라이브러리 메서드
Java 클래스 라이브러리(JCL)에는 많은 바로 사용 가능한 메서드가 번들로 포함되어 있습니다. 일반적인 예:
print() – java.io.PrintStream에서 텍스트 출력.
sqrt() – Math에서 제곱근 계산.
예제 4: 표준 메서드 사용
public class Main {
public static void main(String[] args) {
System.out.print("4의 제곱근: " + Math.sqrt(4));
}
}
출력
4의 제곱근: 2.0
더 많은 라이브러리 메서드는 공식 Java API 문서 탐색.
왜 메서드를 사용하는가?
1. 코드 재사용성 – 한 번 작성, 여러 번 사용. 예:
public class Main {
private static int getSquare(int x) {
return x * x;
}
public static void main(String[] args) {
for (int i = 1; i <= 5; i++) {
int result = getSquare(i);
System.out.println(i + "의 제곱: " + result);
}
}
}
출력:
1의 제곱: 1
2의 제곱: 4
3의 제곱: 9
4의 제곱: 16
5의 제곱: 25
getSquare() 사용으로 반복적인 산술 코드를 피했습니다.
2. 가독성 & 디버깅 – 로직을 메서드로 캡슐화하면 이해하고 테스트하기 쉬운 논리적 단위가 생성됩니다.