Codegym University 과정의 일부로 멘토와 함께하는 강의 스니펫. 전체 과정에 등록하십시오.


"또 왔군, 아미고. 그럼 안녕."

"저를 만나서 그다지 반갑지 않으신 것 같군요, 디에고?"

"나는 당신이 Java의 메소드에 대해 알아야 할 모든 것을 이미 배웠다고 생각한다는 인상을 받았습니다."

"아, 안해요..."

"그렇게 생각하지 않아요! 절반도 모르잖아요."

"물론이지, 난 섭섭하지 않아...

"알았어, 충분한 이야기. 이제 시작할 시간이다. 간단한 것부터 시작하겠다. 예를 들어 Java에는 return 문이 있다는 사실이 있다. 이 문을 사용하면 호출되는 메서드를 즉시 종료할 수 있다. 다음은 문이다.

return;

"간단합니다. 한 단어 return다음에 세미콜론이 옵니다. 프로그램이 이 명령문을 실행하자마자 현재 메서드가 종료되고 호출 메서드가 계속됩니다.

" 메서드 return에서 호출되면 메서드가 즉시 종료되고 전체 프로그램이 함께 종료됩니다.mainmain

예:

class Solution
{
   public static void fill(int[] data, int from, int to, int value)
   {
     if (from < 0 || to > data.length)
       return;

     for (int i = from; i < to; i++)
     {
       data[i] = value;
     }
   }

   public static void main(String[] args)
   {
     int[] months = {1, 2, 3, 4, 5, 6, 7, 8 ,9, 10, 11, 12};
     fill(months, 2, 10, 8);
   }
}
fill 메서드는 전달된 배열의 일부를 value.

채울 배열 부분은 인덱스 from 및 로 정의됩니다 to.

가   배열 길이 from 보다 작 0거나 크면 메서드가 즉시 종료됩니다.to

"위의 프로그램에는 전달 fill된 배열 valuefrom.to

"메소드 시작 시 fill전달된 값이 유효한지 확인합니다. from0보다 작거나 to배열 길이보다 크면 메서드가 fill즉시 종료됩니다( return문 실행)."

"알았어. 이 문장이 그게 다야?"

"사실 이 return문장은 당신이 생각하는 것보다 더 유용합니다. Java의 거의 모든 메서드에서 찾을 수 있을 정도로 매우 유용합니다. 이제 이것이 왜 그런지 이해하도록 안내하겠습니다.

결과가 있는 방법,void

"당신은 아마도 진술이 있고 표현이 있다는 것을 기억할 것입니다 . 그것들의 차이점은 무엇입니까?"

"내가 틀리지 않는다면, 표현은 진술과 달리 어딘가에 사용될 수 있는 의미를 가지고 있습니다."

"정답입니다. 그리고 Java에서 메소드는 도 가질 수 있습니다. 그리고 이것은 매우 좋은 소식입니다. 메소드는 입력 매개변수를 기반으로 무언가를 수행할 수 있을 뿐만 아니라 예를 들어 무언가를 평가하고 결과를 반환할 수 있습니다. 계산 .

"그런데 이미 다음과 같은 방법을 접했습니다.

double delta = Math.abs(d1 - d2);
메서드 abs()는 double을 반환합니다.
Scanner console = new Scanner(System.in);
int x = console.nextInt();

메서드 nextInt()int
String str = "Hello";
String s2 = str.toUpperCase();
메서드 toUpperCase()String
int[] data = {1, 4, 5, 6, 7, 8, 11};
int[] array = Arrays.copyOf(data, 4);

메서드 copyOf()int[]

"각 메서드는 미리 결정된 유형 중 하나의 값만 반환할 수 있습니다 . 반환 유형은 메서드가 선언될 때 결정됩니다.

public static Type name(parameters)
{
  method body
}

여기서 name는 메서드 이름, parameters는 메서드 매개변수 목록, 는 type메서드가 반환하는 결과의 유형입니다.

아무것도 반환하지 않는 메서드의 경우 특별한 자리 표시자 유형이 있습니다: void.

"즉, 내 메서드를 작성하고 아무 것도 반환하지 않으려면 메서드의 유형을 로 선언합니다 void. 그게 다인가요?"

"네. 그리고 Java에는 그런 메서드가 상당히 많다고도 말해야겠네요.

결과 반환

"계산/작업 결과를 반환하는 메서드를 선언하는 방법을 알아냈습니다. 메서드 자체에서 결과를 반환하려면 어떻게 해야 하나요?"

"그건 타당한 질문입니다. 이 return문장은 여기서 다시 한 번 우리를 도와줍니다. 메서드에서 결과를 전달하는 것은 다음과 같습니다.

return value;

" return문은 메서드를 즉시 종료합니다. 그리고 value메서드가 종료될 때 호출 메서드로 반환해야 하는 것입니다. 의 유형은 메서드 선언에 지정된 value것과 일치해야 합니다 Type. 다음은 학습한 내용을 강화하는 몇 가지 예입니다.

예 1. 메서드는 두 숫자의 최소값을 계산합니다.

int min(int a, int b)
{
   if (a < b)
     return a;
   else
     return b;
}
이 메서드는 두 숫자 중 최소값을 반환합니다. 반환하는

경우 그렇지 않은 경우 반환a < b
a

b

예 2. 메서드는 전달된 문자열을 여러 n번 복제합니다.

String multiple(String str, int times)
{
   String result = "";

   for (int i = 0; i < times; i++);
     result = result + " "+ str;
   return result;
}
이 메서드는 문자열과 문자열이 반복되어야 하는 횟수라는 두 가지 매개 변수를 사용합니다.
향후 결과를 위해 빈 문자열이 생성됩니다.

반복이 있는 루프에서 times공백과 문자열이 str문자열에 추가됩니다 result. 메서드의 결과로
문자열이 반환됩니다.result

예 3: 메서드는 삼항 연산자를 사용하여 두 숫자의 최대값을 계산합니다.

int max(int a, int b)
{
   return (a > b ? a : b);
}
이 메서드는 최대 2개의 숫자를 반환합니다.

반환( if a > b, then a, 그렇지 않으면 b)

"훌륭합니다. 방법은 저의 새로운 초능력입니다!"

"실제 작업에서 충분히 연습하는 경우에만. 계속해서."