"좋아, 다른 접근법을 시도해 보자. 호출 방법이 어떻게 작동하는지 보여 줄게. 그리고 나서 너는 이전 수업을 다시 해보자, 알았지?"

"해보자."

"좋습니다. 함수/메소드 호출과 이들이 반환하는 값(반환 값)에 대해 말씀드리겠습니다."

"명령 또는 명령문은 하나의 복잡한 명령처럼 단일 블록으로 실행될 수 있도록 메서드로 그룹화됩니다. 이렇게 하려면 메서드(함수) 이름을 작성한 다음 괄호 안에 메서드의 인수를 나열해야 합니다."

package com.codegym.lesson2;
public class MethodCall
{
    public static void main(String[] args)
    {
         print4("I like to move it, move it.");
    }

    public static void print4(String s)
    {
        System.out.println(s);
        System.out.println(s);
        System.out.println(s);
        System.out.println(s);
    }
}

"위의 예에서 전달된 문자열을 화면에 네 번 표시하는 함수를 작성했습니다. 그런 다음 print46행에서 함수를 호출했습니다."

"프로그램이 6행에 도달하면 9행으로 이동하여 'I like to move it, move it'변수 s에 값을 할당합니다."

"그러면 11-14행이 실행됩니다. 기능이 종료되고 프로그램이 7행에서 다시 시작됩니다."

"알겠어요."

"함수에 인수(값)를 전달할 수 있을 뿐만 아니라 함수는 작업 결과(반환 값)를 반환할 수 있습니다. 이것은 return 키워드로 수행됩니다. 다음과 같이 표시됩니다."

예 1.
두 숫자의 최소값을 결정합니다.
public class MethodCall
{
   public static void main(String[] args)
   {
      int a = 5, b = 7;
      int m = min(a, b);
      System.out.println("The minimum is "+ m);
   }

   public static int min(int c, int d)
   {
      int m2;
      if (c < d)
           m2 = c;
      else
           m2 = d;

      return m2;
   }
}
작동 방식은 다음과 같습니다.
public class MethodCall
{
   public static void main(String[] args)
   {
      int a = 5, b = 7;
      int c = a, d = b;
      int m2;
      if (c < d)
           m2 = c;
      else
           m2 = d;

      int m = m2;
      System.out.println("The minimum is "+ m);
   }
}

"이해가 가는 것 같아요! 왼쪽 열과 오른쪽 열의 코드는 실제로 동일합니다. 왼쪽의 코드에 독립 실행형 기능이 있다는 것뿐입니다."

"이 함수는 특정 값을 계산하고 return 문을 사용하여 해당 값을 호출한 모든 값에 전달합니다. 적어도 제가 보기에는 그렇습니다."

"그리고 당신 말이 맞아요!"

"근데 이 보이드 타입이 뭐죠?"

"일부 함수는 우리의 main() 메서드 와 같이 값을 계산하거나 반환하지 않고 무언가를 수행합니다 . 이러한 함수를 위해 특수 반환 유형인 void 가 생성되었습니다."

"함수가 아무 것도 반환하지 않는다면 그냥 아무 것도 선언하지 않는 이유는 무엇입니까?"

"우리가 변수를 어떻게 선언하는지 기억하세요? 유형과 이름. 함수의 경우 유형, 이름 및 괄호를 선언합니다. 함수 이름 뒤에 괄호가 있으면 함수를 호출하는 방법입니다."

"그래서 함수를 값을 반환하는 것과 반환하지 않는 것의 두 가지 범주로 나누는 것보다 'void 유형'을 발명하는 것이 더 쉬웠습니까?"

"맞아요! 당신은 정말 똑똑하군요, 내 친구."

"공허 유형을 반환하는 방법은 무엇입니까?"

"우리는 안합니다. 이렇게 작동합니다. return 문을 실행할 때 Java 머신은 'return'이라는 단어 오른쪽에 있는 표현식의 값을 계산하고 이 값을 메모리의 특수 부분에 저장하고 즉시 종료합니다 . 저장된 값 은 함수를 호출한 결과로 함수가 호출된 곳에 사용됩니다. 아까 제가 드린 예제에서 보실 수 있습니다."

"int m = min(a, b)가 m = m2로 변환되는 부분을 말씀하시는 건가요?"

"네. 함수가 끝나면 함수의 반환 값이 그 자리에 쓰여진 것처럼 모든 것이 작동합니다. 이 문구를 마음 속으로 반복하고 마지막 예제의 코드를보십시오. "

"이건 쉬운 것 같아요. 실제로는 어렵습니다. 일부만 이해했습니다."

"괜찮아요. 첫 번째 시도에서는 이미 알고 있는 것만 이해할 수 있습니다. 이해하지 못하는 것이 많을수록 새로운 것에 더 깊이 빠져들고 결과는 더 좋아질 것입니다. 시간이 지남에 따라 더 명확해질 것입니다. ."

"글쎄, 그렇게 말씀하신다면. 계속 갑시다."