Java 자바 메소드 (Method) 개념 정리

suover

java

메소드(Method)란?

메소드는 특정 작업을 수행하는 코드 블록을 말합니다. 자바에서는 메소드를 사용하여 코드를 구성하고, 필요한 작업을 메소드로 분리함으로써 코드의 가독성을 높이고 유지보수를 용이하게 할 수 있습니다.

메소드(Method) 특징

  1. 코드 재사용성: 비슷한 기능을 하는 코드를 메소드로 정의하면 여러 곳에서 해당 메소드를 호출하여 중복을 피하고 코드를 재사용할 수 있습니다.
  2. 모듈화: 프로그램을 작은 모듈로 나누어 개발할 수 있으며, 각 모듈은 메소드로 구성되어 있어 독립적으로 테스트하고 유지보수할 수 있습니다.
  3. 가독성 향상: 메소드를 사용하면 코드의 의도가 명확해지며, 전체 코드의 가독성이 향상됩니다.

메소드(Method) 구조

메소드는 다음과 같은 구조를 가지고 있습니다.

Java
접근제한자 반환타입 메소드이름(매개변수) {
    // 메소드의 기능 구현
    return 반환값;
}
Java
  • 접근제한자: 메소드에 접근할 수 있는 범위를 지정합니다. 예를 들어, public, private, protected 등이 있습니다.
  • 반환타입: 메소드가 실행을 마치고 반환하는 값의 타입을 지정합니다. 반환하지 않을 경우 void를 사용합니다.
  • 메소드이름: 메소드를 식별하는 이름을 정의합니다.
  • 매개변수: 메소드가 필요로 하는 입력 값을 전달받는 변수입니다.

메소드의 구현은 중괄호 {} 안에 기능을 작성하는 부분으로 이루어집니다. 메소드가 값을 반환할 경우 return 키워드를 사용하여 반환값을 지정합니다.

메소드 구조 상세 설명

접근제한자 (Access Modifier)

  • 역할: 메소드에 대한 접근 권한을 지정합니다.
  • 종류: public, private, protected, default(아무 것도 명시하지 않음) 등이 있습니다.
  • 설명:
    • public: 어떤 클래스에서든 접근 가능합니다.
    • private: 해당 클래스에서만 접근 가능하며, 외부에서 직접 호출할 수 없습니다.
    • protected: 같은 패키지 내의 클래스 및 해당 클래스를 상속받은 하위 클래스에서 접근 가능합니다.
    • default: 같은 패키지 내에서만 접근 가능합니다.

반환타입 (Return Type)

  • 역할: 메소드가 실행을 마친 후 반환하는 값의 데이터 타입을 지정합니다.
  • 종류: 모든 데이터 타입 또는 void (반환값이 없음을 나타냄).
  • 설명:
    • 예를 들어, int, double, String, boolean 등이 반환 타입이 될 수 있습니다.
    • void인 경우 메소드가 값을 반환하지 않음을 의미합니다.

메소드 이름 (Method Name)

  • 역할: 메소드를 식별하는 이름을 정의합니다.
  • 규칙: 영문자로 시작하며, 영문자, 숫자, 밑줄(_) 등을 사용할 수 있습니다.
  • 설명:
    • 메소드를 호출할 때 이 이름을 사용하여 호출합니다.
    • 이름은 의미를 부여하여 코드의 가독성을 높이는 데 도움을 줍니다.

매개변수 (Parameters)

  • 역할: 메소드에 전달되는 값을 받는 변수들의 목록을 정의합니다.
  • 설명:
    • 메소드가 실행될 때 외부에서 전달되는 값들을 받아들입니다.
    • 매개변수가 필요 없는 경우, 빈 괄호 ()를 사용합니다.
    • 여러 개의 매개변수가 필요한 경우 쉼표 ,로 구분합니다.

메소드의 기능 구현

  • 역할: 메소드가 수행할 작업을 중괄호 {} 내에 기술합니다.
  • 설명:
    • 메소드의 본문에는 코드 블록이 위치하며, 이 부분에 실제로 수행할 작업을 기술합니다.
    • 메소드가 반환할 값을 계산하거나, 특정 동작을 수행하는 코드가 이 부분에 위치합니다.

반환값 (Return Statement)

  • 역할: 메소드가 실행을 마친 후 반환할 값을 지정합니다.
  • 설명:
    • return 키워드를 사용하여 반환값을 명시합니다.
    • 반환 타입이 void인 경우, return문은 생략됩니다.
    • 반환값이 있는 경우 해당 값을 반환합니다.

메소드의 구조는 이러한 요소들이 함께 작동하여 메소드의 동작을 정의하고, 코드를 모듈화하여 유지보수와 가독성을 향상시킵니다.

메소드 선언 방법

간단한 예제로 메소드를 선언하는 과정을 살펴보겠습니다.

Java
public class MyClass {
    
    // 메소드 선언
    public static int addNumbers(int num1, int num2) {
        int sum = num1 + num2;
        return sum;
    }

    // 메인 메소드 (프로그램의 시작점)
    public static void main(String[] args) {
        // 메소드 호출
        int result = addNumbers(5, 7);
        System.out.println("두 수의 합: " + result);
    }
}
Java
  • 이 예제에서는 addNumbers라는 메소드를 선언하고, 이를 main 메소드에서 호출하는 구조를 보여줍니다.
  • addNumbers 메소드는 두 개의 정수를 받아 더한 값을 반환하는 기능을 수행합니다.

메소드 호출 방법

메소드는 다른 코드에서 다양한 방법으로 호출될 수 있습니다. 메소드를 호출하는 것은 해당 메소드의 기능을 실행하는 것을 의미합니다.

메소드 호출의 기본 구조

메소드 호출은 다음과 같은 형태를 가지고 있습니다.

Java
메소드이름(매개변수);
Java

💡여기서

  • 메소드이름: 호출하려는 메소드의 이름입니다.
  • 매개변수: 메소드가 필요로 하는 입력 값을 전달하는데 사용되는 변수입니다. 필요 없는 경우 괄호 안이 비어있을 수 있습니다.

동일한 클래스 내의 메소드 호출

Java
public class MyClass {
    public static void main(String[] args) {
        // 같은 클래스 내의 메소드 호출
        myMethod();
    }

    public static void myMethod() {
        System.out.println("동일한 클래스 내의 메소드가 호출되었습니다.");
    }
}
Java

다른 클래스의 메소드 호출

Java
public class AnotherClass {
    public static void main(String[] args) {
        // 다른 클래스의 메소드 호출
        MyClass.myMethod();
    }
}
Java
  • 다른 클래스의 메소드를 호출할 때에는 클래스 이름과 함께 메소드를 호출합니다.
  • 위의 예제에서는 MyClass.myMethod() 로 호출하였습니다.

메소드에 매개변수 전달

Java
public class Calculator {
    public static void main(String[] args) {
        int result = addNumbers(5, 7);
        System.out.println("두 수의 합: " + result);
    }

    public static int addNumbers(int num1, int num2) {
        int sum = num1 + num2;
        return sum;
    }
}
Java
  • 메소드에 매개변수가 있는 경우, 호출할 때 해당 매개변수에 전달할 값을 지정합니다.
  • 위의 예제에서는 addNumbers(5, 7) 로 호출하였습니다.

반환값 활용

Java
public class Example {
    public static void main(String[] args) {
        int result = multiply(3, 4);
        System.out.println("두 수의 곱: " + result);
    }

    public static int multiply(int num1, int num2) {
        int product = num1 * num2;
        return product;
    }
}
Java
  • 메소드가 반환값을 가지는 경우, 호출한 곳에서 반환값을 활용할 수 있습니다.
  • 위의 예제에서는 multiply(3, 4) 호출 결과를 변수에 저장하여 출력하였습니다.

메소드 활용 예제

자바에서 메소드를 활용하여 만든 간단한 계산기 프로그램 입니다.

Java
public class Calculator {
    public static void main(String[] args) {
        // 덧셈 예제
        int sumResult = add(5, 3);
        System.out.println("덧셈 결과: " + sumResult);

        // 곱셈 예제
        int multiplyResult = multiply(4, 6);
        System.out.println("곱셈 결과: " + multiplyResult);

        // 나눗셈 예제
        double divideResult = divide(10, 2);
        System.out.println("나눗셈 결과: " + divideResult);
    }

    // 덧셈 메소드
    public static int add(int num1, int num2) {
        return num1 + num2;
    }

    // 곱셈 메소드
    public static int multiply(int num1, int num2) {
        return num1 * num2;
    }

    // 나눗셈 메소드
    public static double divide(double dividend, double divisor) {
        if (divisor == 0) {
            System.out.println("0으로 나눌 수 없습니다.");
            return 0;
        }
        return dividend / divisor;
    }
}
Java

설명

  1. 덧셈 메소드 (add)
    • 매개변수: 정수형 두 개 (num1, num2).
    • 반환값: 정수형으로, 두 수의 합을 반환.
    • 기능: 두 정수를 더한 값을 반환하는 간단한 덧셈을 수행.
  2. 곱셈 메소드 (multiply)
    • 매개변수: 정수형 두 개 (num1, num2).
    • 반환값: 정수형으로, 두 수의 곱을 반환.
    • 기능: 두 정수를 곱한 값을 반환하는 간단한 곱셈을 수행.
  3. 나눗셈 메소드 (divide)
    • 매개변수: 실수형 두 개 (dividend, divisor).
    • 반환값: 실수형으로, 나눗셈 결과를 반환.
    • 기능: 두 실수를 나눈 값을 반환하며, 0으로 나누는 예외를 처리.

프로그램 실행과 결과

위의 예제에서 main 메소드에서 각각의 메소드를 호출하고 있습니다. add, multiply, divide 메소드는 각각 두 수의 덧셈, 곱셈, 나눗셈을 수행하고 결과를 반환합니다. 이렇게 모듈화된 메소드를 사용함으로써 코드의 가독성이 높아지고, 유지보수가 용이해집니다.

프로그램을 실행 결과는 아래와 같습니다.

Java
덧셈 결과: 8
곱셈 결과: 24
나눗셈 결과: 5.0
Java

결론

이번 글에서는 자바의 “메소드”에 대해 살펴보았습니다. 메소드는 코드를 모듈화하여 효율적으로 구성하고, 가독성을 높여주는 중요한 도구입니다. 작업을 간결한 블록으로 나누어 코드를 이해하기 쉽게 만들어주며, 코드의 재사용성을 높여줍니다. 자바 프로그래밍에서 메소드의 적절한 활용은 프로그램을 더 효과적으로 설계하고 유지보수 하기 쉽게 만듭니다. 이를 통해 개발자는 각각의 기능을 독립적으로 구현하고 조합할 수 있어 더 효율적인 코드를 작성할 수 있게 됩니다.

Leave a Comment