본문 바로가기

JAVA

[JAVA] 메서드에 대하여

오늘은 메서드에 대하여 간단하게 알아보겠다.


public class PrintRanges {
    public static void main(String[] args) {
        // 0~10 구간의 for 루프 출력
        System.out.println("0~10 구간의 for 루프:");
        printForLoop(0, 10);
        System.out.println();

        // 10~100 구간의 for 루프 출력
        System.out.println("10~100 구간의 for 루프:");
        printForLoop(10, 100);
        System.out.println();

        // 100~1000 구간의 for 루프 출력
        System.out.println("100~1000 구간의 for 루프:");
        printForLoop(100, 1000);
        System.out.println();
    }

    // start부터 end까지의 for 루프를 출력하는 메서드
    public static void printForLoop(int start, int end) {
        for (int i = start; i <= end; i++) {
            System.out.println("i = " + i);
        }
    }
}

 

메서드의 정의

여기서 볼 수 있듯이 메서드는 특정 연산을 수행하려고 실행문을 모아 둔 블록이다. 다른 프로그래밍 언어의 함수 또는 프로시저와 비슷한 개념이다. 자바에서 메서드는 독립적으로 존재하지 않고 클래스 내부에서만 정의된다.

 

메서드를 이용하게되면 

- 중복된 코드를 줄이고 코드를 재사용할 수 있다.

- 코드를 모듈화해 가독성을 높이므로 프로그램의 품질을 향상 시킨다.

 


메서드의 구조

public int sumFrom0to10() {
    // 메서드의 구현 내용
}

위 구조에서 각 부분의 역할은 다음과 같습니다:

- 접근 제어자,지정자 : 메서드의 특징으로 컴파일러에 메서드의 접근 범위를 알려준다.

- 리턴타입, 반환타입 : 메서드는 값을 반환할 수 있다. 반환 타입은 메서드가 본체를 실행한 후 반환할 데이터의 타입이다. 

반환할 데이터가 없다면 반환타입에 void를 사용한다. 예시의 int처럼 있으면 return을 사용하여 반환할 값을 입력해주면 된다.

- 매개 변수 : 메서드에는 외부에서 데이터를 전달받을 수 있는 매개벼ㅓㄴ수 목록이 있는데 같은 타입의 매개변수가 여러개라 하더라도 데이터 타입을 따로 선언해야 한다.

 

예를 들어 2개의 정수 타입 매개변수를 가진다면  public int sumFrom0to10(int x,int y) {} 이런식으로 선언할 수 있다.


메서드의 호출과 반환

1. 메서드의 반환

메서드의 반환은 메서드가 실행된 후 , 결과 값을 반환하는 것을 의미합니다. 예를 들어서 두 정수를 더하는 메서드의 경우 두 정수를 더한 값을 반환할 수 있습니다. 아래는 간단한 덧셈의 예시입니다.

public int add(int a, int b) {
    int sum = a + b;
    return sum; // 덧셈 결과 값을 반환
}

위 예시에서 add 메서드는 int 타입의 값을 반환하도록 정의되어 있습니다. 메서드가 실행된 후, sum 변수의 값을 반환하여 결과 값을 돌려줍니다.

 

2. 메서드의 호출(Call)

메서드의 호출은 메서드를 실행 하는것을 의미합니다. 메서드를 호출할 때는 해당 메서드의 이름과 필요한 매개변수를 전달하여 호출합니다. 아래는 add메서드를 호출하는 예시입니다.

int result = add(3, 5); // add 메서드를 호출하고 결과 값을 result 변수에 저장

위 예시에서 add 메서드를 호출하고, 매개 변수로 3과 5를 전달하여 실행됩니다. 그리고 add 메서드의 실행 결과인 8이 result 변수에 저장되게 됩니다.

이와 같이 메서드의 반환은 메서드가 실행된 후 결과 값을 반환하고, 메서드의 호출은 해당 메서드를 실행하는 것을 의미합니다. 호출한 메서드가 결과 값을 반환할 경우, 해당 값을 받아서 다양한 방식으로 활용할 수 있습니다.


 

메서드의 제어 이동

public class Example {
    public static int multiply(int a, int b) {
        int result = a * b;
        return result;
    }

    public static void printResult(int result) {
        System.out.println("곱셈 결과: " + result);
    }

    public static void main(String[] args) {
        int num1 = 3;
        int num2 = 5;

        // multiply 메서드 호출 후 결과 값을 반환받음
        int multipliedResult = multiply(num1, num2);

        // printResult 메서드 호출하여 결과 값을 출력
        printResult(multipliedResult);
    }
}

위 예시에서

1 main 메서드에서 multiply 메서드를 호출하고,

2 그 결과 값을 반환받아 multipliedResult 변수에 저장합니다.

3 printResult 메서드를 호출하여 multipliedResult 값을 출력합니다.

4 이때 multiply 메서드가 실행되고 그 결과값이 반환되면 제어는 다시 main 메서드로 돌아오게 됩니다.

5 그 후 printResult메서드가 호출되어 실행되고 결과 값이 출력됩니다.

이처럼 메서드 간의 제어 이동이 발생하며, 호출된 메서드가 실행 마친 후에 호출한 메서드로 제어가 돌아오게 됩니다.

 

 

반응형