안녕하세요~ 

이번 시간에는 리턴타입에 따라 달라지는 메소드형태에 대해 알아보려고 하는데요.

먼저 코드부터 볼까요?

리턴 타입에 따라 리턴이 생기고 없어지는 메소드

리턴이 없는 plus1 메소드, 리턴이 있는 plus2와 plus3 메소드를 사용하여 입력한 값에 10을 더한 값을 출력하고자 합니다.

 분명히 실행을 했는데 콘솔창에는 아무것도 안 나오네요.. 같이 해결해볼까요?!

오늘의 핵심 키워드

1.  리턴타입이 void일 때는 return이 필요하지 않다. 따라서 단순 동작만 필요할 때 사용한다.

2. 리턴타입이 void가 아닐 때는 무조건 return이 필요하다.  (int면 정수, String이면 문자 등)

3. 콘솔창에 출력할 때는 print메소드 안에 작성해야한다. return값이 있어도 print메소드 안에 넣지 않으면 콘솔창에서 볼 수 없다.


콘솔창에 출력하기 위해 print 메소드를 사용하고 그 안에서 plus 메소드들을 호출하게 되면 다음과 같은 문제가 발생합니다.

 plus1 메소드가 들어간 println 메소드에서만 오류가 발생했는데요.

차이점을 잘 생각해보면 유일하게 리턴타입이 void이기 때문에 return값이 없어서 print메소드에서 출력할 값이 없어서 발생한 오류입니다.

리턴값은 없지만 필드에 저장했기 때문에 필드 자체를 출력하면 똑같은 동작처럼 사용할 수 있습니다.

[1] plus1 메소드가 실행되어 m 객체에 있는 필드 result에 매개변수로 들어간 10에 10을 더한 값 20이 저장되어 그대로 출력된 모습입니다.

[2] plus2 메소드는 리턴타입이 int이므로 정수를 무조건 return해주어야 하고 필드 result에 20을 저장하여 리턴한 값 20이 출력된 모습입니다. 

[3] plus3 메소드는 필드 result가 아닌 메소드 안에서 선언한 지역변수 result에 20을 저장하고 리턴한 값 20을 출력한 모습입니다.



최종 완성본

꼭 봐야되는 마무리 꿀팁!

  • 메소드 실행과 동시에 나온 값을 사용해야될 때가 아니면 void 타입으로 선언하기!
  • 콘솔창에 출력하고 싶은 내용은 print 메소드 안에 작성하기!

▲영상으로 한번 더 복습하세요 :)