자바를 배우는 데 있어 가장 기본적인 개념 중 하나가 바로 '메소드(Method)'입니다. 이번 포스팅에서는 메소드가 무엇인지, 왜 필요한지 그리고 어떻게 선언하고 사용하는지에 대해 자세히 알아보도록 하겠습니다.
메소드란?
메소드는 자바에서 특정 작업을 수행하는 코드의 집합으로, 재사용 가능한 코드 블록입니다. 이 블록은 특정 작업을 수행하기 위한 코드로, 필요할 때마다 호출하여 사용할 수 있습니다. 메소드는 클래스 내부에 선언되며, 객체 지향 프로그래밍에서 중요한 요소 중 하나입니다.
메소드 목적
메소드의 주요 목적은 코드의 재사용성을 높이고, 프로그램의 구조를 보다 명확하게 만드는 것입니다. 한 번 작성된 메소드는 필요할 때마다 호출하여 사용할 수 있어 코드의 중복을 줄일 수 있습니다. 또한 메소드를 통해 구현하려는 기능을 모듈화할 수 있어 코드의 유지 보수와 이해가 용이해집니다.
메소드 선언
- 메소드 선언 방법
메소드는 다음과 같이 선언합니다.
접근제어자 반환타입 메소드명(매개변수타입 매개변수명, ...) {
// 메소드 로직
return 값;
}
위의 코드 조각의 각 부분에 대해 자세히 설명드리겠습니다.
- 접근제어자(Access Modifier): 클래스, 변수, 메소드에 대한 접근을 제어하는 역할을 합니다. public, private, protected 그리고 아무것도 없는 경우(패키지-프라이빗)로 총 4가지 종류가 있습니다.
- public: 어디서든 접근 가능합니다.
- private: 같은 클래스 내에서만 접근 가능합니다.
- protected: 같은 패키지나 상속받은 자식 클래스에서만 접근 가능합니다.
- 아무것도 없는 경우(패키지-프라이빗): 같은 패키지 내에서만 접근 가능합니다.
- 반환타입(Return Type): 메소드가 실행한 결과로 반환하는 값의 타입을 지정합니다. void는 반환값이 없음을 의미합니다.
- 메소드명(Method Name): 메소드를 호출할 때 사용하는 이름입니다. 메소드명은 보통 메소드가 수행하는 동작을 나타내는 동사로 지어집니다.
- 매개변수(Parameter): 메소드 호출 시 외부에서 전달된 값을 받아 저장하는 변수입니다. 필요한 만큼 매개변수를 선언할 수 있으며, 각 매개변수는 콤마(,)로 구분됩니다. 매개변수타입과 매개변수명으로 이루어져 있습니다.
- 메소드 로직: 메소드가 호출되었을 때 실행할 코드를 작성하는 부분입니다. 이 부분에서는 주로 매개변수를 활용한 연산이 이루어지며, 처리한 결과를 return 문을 통해 반환합니다.
- return 값: 메소드가 수행한 결과를 호출한 곳으로 반환합니다. 이 때의 값의 타입은 메소드 선언부에서 지정한 반환 타입과 일치해야 합니다. void 타입의 메소드는 return 문을 생략할 수 있습니다.
메소드 선언 시 주의해야 할 점은 메소드명은 동작을 나타내는 동사로 작성하고, 매개변수는 메소드를 호출할 때 전달되는 인자를 받는 부분이라는 것입니다.
두 정수의 곱셈을 수행하는 multiply() 메소드를 선언해 보겠습니다.
public int multiply(int num1, int num2) {
return num1 * num2;
}
위의 메소드는 두 개의 정수를 매개변수로 받아 그 곱셈 결과를 반환하는 역할을 합니다.
- public: 접근 제어자로, 이 메소드는 어디에서든 접근할 수 있음을 나타냅니다.
- int: 반환 타입으로, 이 메소드가 정수를 반환함을 나타냅니다.
- multiply: 메소드 이름으로, 이 메소드의 기능을 나타냅니다.
- (int num1, int num2): 두 개의 매개변수를 정의하고 있습니다. 두 매개변수 모두 int 타입입니다.
- return num1 + num2;: 메소드 로직입니다. 두 매개변수를 더한 결과를 반환하고 있습니다.
메소드 사용
메소드를 사용하려면 호출해야 합니다. 메소드는 클래스 내부에 존재하기 때문에, 클래스를 객체화한 후 해당 객체를 통해 메소드를 호출합니다. 아래는 메소드 호출 예시입니다.
클래스명 참조변수명 = new 클래스명();
참조변수명.메소드명();
만약 메소드가 정적(static) 메소드인 경우에는 클래스명으로 바로 호출할 수 있습니다.
클래스명.메소드명();
위의 내용을 바탕으로 메소드를 활용한 실습을 해보겠습니다.
자바에서 클래스를 선언하고 그 안에 메소드를 선언한 다음에, 그 메소드를 호출하여 사용하는 예제입니다.
public class Calculator {
// 덧셈을 수행하는 메소드
public int add(int num1, int num2) {
return num1 + num2;
}
// 곱셈을 수행하는 메소드
public int multiply(int num1, int num2) {
return num1 * num2;
}
}
public class Main {
public static void main(String[] args) {
// Calculator 클래스의 인스턴스 생성
Calculator calc = new Calculator();
// add 메소드 호출
int sum = calc.add(5, 3);
System.out.println("5 + 3 = " + sum);
// multiply 메소드 호출
int product = calc.multiply(5, 3);
System.out.println("5 * 3 = " + product);
}
}
위의 코드를 실행하면 다음과 같은 결과가 출력됩니다.
5 + 3 = 8
5 * 3 = 15
이와 같이 클래스 내부에 선언된 메소드는 클래스의 객체를 생성한 후에 사용할 수 있습니다. 이 예제에서는 Calculator 클래스의 add 메소드와 multiply 메소드를 호출하여 사용하였습니다. 이렇게 메소드를 활용하면 코드의 재사용성을 높이고 코드를 더 깔끔하게 작성할 수 있습니다.
이렇게 메소드에 대해 알아보았습니다. 메소드는 자바와 같은 객체 지향 프로그래밍에서 중요한 요소 중 하나입니다. 코드의 재사용성을 높이고, 프로그램의 구조를 깔끔하게 만드는데 큰 역할을 합니다. 이번 포스팅이 메소드에 대한 이해를 돕는데 도움이 되었길 바랍니다.
'개발 > Java' 카테고리의 다른 글
Java에서의 변수 유형 및 static 키워드 (0) | 2023.07.17 |
---|---|
Java에서의 클래스(Class): 이해와 활용 (0) | 2023.07.17 |
Java에서의 배열: 활용 (0) | 2023.07.13 |
Java에서의 배열: 기초 (0) | 2023.07.13 |
Java의 제어문: while문 (0) | 2023.07.13 |