해당 글은 '자바의 정석 기초편'을 보고 작성되었습니다.
메서드(Method)
- 특정 작업을 수행하는 일련의 문장들을 하나로 묶는 것
- 어떤 값을 입력하면 이 값으로 작업을 수행해서 결과를 반환하는 것
(함수와는 달리 메서드는 입력값 또는 출력값이 없을 수도 있으며 심지어는 입력값과 출력값이 모두 없는 경우도 존재한다)
메서드의 머리와 몸
반환타입 메서드명 (타입 변수명, 타입 변수명, ...)
{
메서드 호출시 수행될 코드
}
int add(int a, int b)
{
int result = a+b;
return result;
}
반환타입 int, 메서드명 add
여기서 int add(int a, int b)는 선언부로 메서드 호출시 수행될 코드를 구현부로 표현한다.
메서드의 선언부
메서드의 이름, 매개변수 선언 그리고 반환타입으로 구성되어 있다. 그말은 고로 메서드가 작업을 수행하기 위해 어떤 값들을 필요로 하고, 작업의 결과로 어떤 타입의 값을 반환하는지에 대한 정보를 제공한다는 의미이다.
매개변수 선언
- 메서드가 작업을 수행하는데 필요한 값들을 제공받기 위한 것으로, 필요한 값의 개수만큼 변수를 선언한다.
- 개수는 제한 없으나, 보통 값이 많을 때에는 배열 또는 참조변수를 사용하기도 한다.
반환타입
- 메서드의 작업 수행 결과인 반환값의 타입을 적는데, 이 부분에 반환값이 없는 경우는 'void'를 작성해주어야 한다.
메서드의 구현부
메서드를 호출 했을 때 수행될 문장들을 넣는다. 그동안 작성해왔던 main 메서드 안의 내용이 모두 구현부에 속한다.
return문
- 메서드의 반환타입이 'void'가 아닌경우, 구현부 안에 return값이 반드시 들어간다. 이 문장은 작업을 수행한 결과인 반환값을 호출한 메서드로 전달하는데, 이 값의 타입은 반환타입과 일치하거나 적어도 자동 형변환이 가능한 것이어야 한다.
- 여러개의 변수를 선언할 수 있는 매개변수와 달리 return문은 단 하나의 값만 반환할 수 있는데, 메서드로의 입력(매개변수)은 여러 개일 수 있어도 출력(반환값)은 최대 하나만 허용한다.
✨추가적으로, 반환값의 유무에 관계없이 원래는 모든 메서드에 리턴값을 넣어 주어야하지만, 반환타입을 void로 설정하면 컴파일러가 메서드의 마지막에 'return;'을 자동적으로 추가해주는 것
지역변수(local variable)
- 메서드 내에 선언된 변수들은 그 메서드 내에서만 사용할 수 있으므로 서로 다른 메서드라면 같은 이름의 변수를 선언해도 된다.