Java와 같은 객체지향프로그램(Object Oriented Programming)에서는 함수를 메소드(method)라고 한다.
결국 method는 함수(function)과 같은 의미와 기능이다. 함수는 우리가 수학에서 말하는 그 함수와 같다.
▲ 어떤 값을 넣으면(input) 함수마다 가지고 있는 어떤 로직에 의해 결과물이 나온다.(output)
메소드의 구조는 다음과 같은 구조를 가지고 있다.
구체적인 구조의 내용은 아래에서 메소드를 알아보면서 차근차근 알게 된다.
메소드는 class안에서만 선언하며, 메소드를 호출 할 때는 main method안에서 호출한다. 또한 동일한 class안에서 메소드명은 중복 불가하다.
이러한 메소드에는 크게 4가지의 종류가 있는데 하나씩 알아보도록 하자.
<메소드 형식 1 : 매개변수도 없고 반환값도 없는 경우>
이와 같은 경우는 input도 받지 않고 결과값(output)도 반환(return)하지 않는 형태를 말한다.
이처럼 결과값을 반환하지 않을 때 '반환타입'은 'void'이다.
void타입의 메소드는 주로 '출력하는 기능'을 담당한다.
▲ class안에서 위와같은 출력을 하는 method를 선언했다.
출력을 하기 위해서는 main method안에서 method명을 호출하면 된다. 아래와 같이.
▼위 메소드의 출력결과
void형은 입력도 값을 반환도 하지 않는 타입의 메소드 인데 만약 내가 값을 반환하려고 하는 어떻게 될까?
▲ 100을 returnValue라는 변수에 저장을 한 void메소드에서 값을 반환(return)하려고 하면 error가 난다.
애초에 void는 값을 return하지 않겠다고 선언한 메소드이기 때문이다.
하지만 값을 return하지는 않지만 return을 사용할 수 있다.
▲ return뒤에 변수나 값이 없이 단독으로 사용되면 이것은 값을 return한다는 것이아닌 메소드를 빠져나가겠다는 의미이다. 따라서 return;문은 주로 어떤 특정 조건하에서 메소드를 빠져나갈 때 주로 사용한다.
따라서 return;이 있으면 이후 코드들은 실행이 될 여지없지 해당 메소드가 종료된다. 때문에 return 이후 코드가 있으면 다음과 같은 에러가 난다.
▲ 직역하자만 닿을 수 없는 코드 즉, 실행될 수 없는 코드라고 error가 생긴다.
하지만 다음과 같은 경우는 Unreachable Code가 아니다.
▲ if문안에 return이 있지만 if의 조건문이 거짓이면 return이 실행되지 않는 경우도 존재하므로 return이 무조건적 실행이 아니기 때문에 위의 경우에는 return이후 코드가 정상 작동하게 된다.
'Java' 카테고리의 다른 글
[Java]method - type3 (0) | 2022.03.03 |
---|---|
[Java]method - type2 (0) | 2022.03.02 |
[Java]배열(Array) - 2차원 배열 (0) | 2022.03.02 |
[Java]배열(Array) - 1차원 배열 (0) | 2022.02.28 |
[Java]break와 continue (0) | 2022.02.28 |