개발/Java

Java에서의 메소드(Method): 이해와 활용

ju_ni_ 2023. 7. 13. 16:32
반응형

자바를 배우는 데 있어 가장 기본적인 개념 중 하나가 바로 '메소드(Method)'입니다. 이번 포스팅에서는 메소드가 무엇인지, 왜 필요한지 그리고 어떻게 선언하고 사용하는지에 대해 자세히 알아보도록 하겠습니다.

 

메소드란?

메소드는 자바에서 특정 작업을 수행하는 코드의 집합으로, 재사용 가능한 코드 블록입니다. 이 블록은 특정 작업을 수행하기 위한 코드로, 필요할 때마다 호출하여 사용할 수 있습니다. 메소드는 클래스 내부에 선언되며, 객체 지향 프로그래밍에서 중요한 요소 중 하나입니다.

 

메소드 목적

메소드의 주요 목적은 코드의 재사용성을 높이고, 프로그램의 구조를 보다 명확하게 만드는 것입니다. 한 번 작성된 메소드는 필요할 때마다 호출하여 사용할 수 있어 코드의 중복을 줄일 수 있습니다. 또한 메소드를 통해 구현하려는 기능을 모듈화할 수 있어 코드의 유지 보수와 이해가 용이해집니다.

 

메소드 선언

- 메소드 선언 방법
메소드는 다음과 같이 선언합니다.

접근제어자 반환타입 메소드명(매개변수타입 매개변수명, ...) {
    // 메소드 로직
    return 값;
}

위의 코드 조각의 각 부분에 대해 자세히 설명드리겠습니다.

  1. 접근제어자(Access Modifier): 클래스, 변수, 메소드에 대한 접근을 제어하는 역할을 합니다. public, private, protected 그리고 아무것도 없는 경우(패키지-프라이빗)로 총 4가지 종류가 있습니다.
    • public: 어디서든 접근 가능합니다.
    • private: 같은 클래스 내에서만 접근 가능합니다.
    • protected: 같은 패키지나 상속받은 자식 클래스에서만 접근 가능합니다.
    • 아무것도 없는 경우(패키지-프라이빗): 같은 패키지 내에서만 접근 가능합니다.
  2. 반환타입(Return Type): 메소드가 실행한 결과로 반환하는 값의 타입을 지정합니다. void는 반환값이 없음을 의미합니다.
  3. 메소드명(Method Name): 메소드를 호출할 때 사용하는 이름입니다. 메소드명은 보통 메소드가 수행하는 동작을 나타내는 동사로 지어집니다.
  4. 매개변수(Parameter): 메소드 호출 시 외부에서 전달된 값을 받아 저장하는 변수입니다. 필요한 만큼 매개변수를 선언할 수 있으며, 각 매개변수는 콤마(,)로 구분됩니다. 매개변수타입과 매개변수명으로 이루어져 있습니다.
  5. 메소드 로직: 메소드가 호출되었을 때 실행할 코드를 작성하는 부분입니다. 이 부분에서는 주로 매개변수를 활용한 연산이 이루어지며, 처리한 결과를 return 문을 통해 반환합니다.
  6. 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