메서드란?
프로그래밍을 하다 보면 같은 코드를 반복해서 작성하게 되는 경우가 많습니다. 하지만 반복되는 코드를 매번 작성하기보다는, 하나의 코드로 정의해두고 여러 곳에서 재사용하는 것이 훨씬 효율적이고 관리하기 쉽습니다. 이럴 때 사용하는 것이 바로 메서드(Method) 입니다. 메서드는 반복되는 코드를 하나로 묶어 재사용할 수 있게 해주는 프로그래밍의 핵심 도구입니다.
메서드는 특정 작업을 수행하는 코드 블록으로 아래와 같이 정리할 수 있습니다.
- 어떤 기능을 하나로 묶은 코드 덩어리입니다.
- 반복적으로 사용되는 코드를 한 번만 정의하고, 필요할 때마다 호출해서 사용할 수 있습니다.
- Java에서는 메서드가 클래스 안에 정의됩니다.
메서드의 필요성
- 코드의 재사용성
- 같은 코드를 여러 번 쓰지 않고 한 번 정의해서 계속 호출할 수 있습니다.
- 가독성 향상
- 코드를 기능 단위로 나누면 읽기 쉬워지고 유지보수가 용이합니다.
- 모듈화
- 복잡한 프로그램을 기능별로 나눠서 관리할 수 있습니다.
- 디버깅/테스트 용이
- 특정 메서드만 따로 테스트하거나 수정할 수 있습니다.
메서드 선언
- 리턴 타입 : 메서드가 결과로 반환할 값의 자료형 (void는 반환 없음)
- 메서드 이름 : 메서드를 호출할 때 사용하는 이름
- 매개변수 : 메서드에 전달하는 입력값 (생략 가능)
- return 문 : 처리한 결과를 반환하는 구문 (리턴 타입이 void일 경우 생략)
더보기
💡 메서드 네이밍 규칙
메서드는 동사로 시작하는 것이 일반적이고, 단어는 camelCase로 구분합니다.
Ex. printMessage(), calculateTax(), getName(), getName(), setUserInfo() 등
실습 예제
두개의 int형 매개변수를 받고, 매개변수끼리 더한 값을 반환하는 메서드와 반환값 없이 단순히 출력하는 메서드 예제 입니다.
Method 클래스
// Method 클래스 생성
public class Method {
// add 메서드 생성
public int add(int a, int b) {
return a + b;
}
// out 메서드 생성
public void out(int num) {
System.out.println(num);
}
// sqrtOut 메서드 생성 (제곱 메서드)
public static void sqrtOut(int num) {
System.out.println(num * num);
}
}
Main 클래스
public class Main {
public static void main(String[] args) {
Method method = new Method(); //Method 객체 생성
int sum = method.add(3, 4); //Method 객체의 add 메서드 호출 (int형 반환)
method.out(sum); //Method 객체의 out 메서드 호출 (반환 없음)
Method.sqrtOut(sum); //객체 생성 없이 static sqrtOut 메서드 호출 가능
}
}
- 출력 결과 -
7
49
반환값이 있는 메서드 - add(int a, int b)
- 이 메서드는 두 개의 정수를 받아서, 그 합을 결과로 돌려주는 기능을 합니다.
- return 키워드를 사용하여 결과값을 호출한 곳으로 반환합니다.
- int는 **리턴 타입(반환형)**이며, 정수 값을 돌려준다는 의미입니다.
반환값이 없는 메서드 - out(int num)
- 이 메서드는 단순히 숫자를 출력하는 역할만 수행합니다.
- 아무 값도 반환하지 않기 때문에 void 리턴 타입을 사용합니다.
- void는 “아무것도 돌려주지 않는다”는 의미입니다.
static + void 메서드 – sqrtOut(int num)
- 이 메서드는 반환값 없이 출력만 하며,
- static으로 선언되어 있기 때문에 객체 생성 없이도 호출 가능합니다.
💡 public 키워드는 접근제어자로 어디서든 이 메서드를 사용할 수 있도록 허용한다 라는 의미입니다.
public이 있으면 : 다른 클래스, 다른 패키지에서도 호출 가능
public이 없으면 : 같은 패키지 안에서만 호출 가능
접근제어자에 대한 내용은 접근제어자 파트에서 자세히 다루겠습니다.
더보기
반환값이 없는 메서드를 변수에 할당할 경우 오류가 발생하지만, 반환값이 있는 메서드를 변수에 할당없이 사용해도 문제가 발생하지 않습니다!
public class Main {
public static void main(String[] args) {
// int 반환 메서드 변수 할당 없이 호출
method.add(3, 4);
// 오류 발생 X
// void 메서드 변수 할당
int num = method.out(10);
// 오류 발생 O
}
}
읽어주셔서 감사합니다 😊
'프로그래밍 언어 > Java' 카테고리의 다른 글
[Java] 14. 재귀호출 (0) | 2025.04.07 |
---|---|
[Java] 13. 클래스 메서드와 인스턴스 메서드 (0) | 2025.04.03 |
[Java] 11. 클래스 변수와 인스턴스 변수 (0) | 2025.04.02 |
[Java] 10. 캡슐화란? (0) | 2025.03.27 |
[Java] 09. 클래스와 객체와 인스턴스 (1) | 2025.03.26 |