메소드는 객체의 동작에 해당하는 블록을 말한다.
메소드 선언은 선언부(리턴 타입, 메소드 이름, 매개 변수 선언)와 실행 블록으로 구성된다.
리턴값의 타입을 말한다. 리턴값이란 메소드를 실행한 후의 결과값을 말한다. 리턴값이 없을 수도 있지만, 리턴값이 있다면 선언부에 반드시 명시되어 있어야 한다.
메소드 이름은 자바 식별자 규칙에 맞게 작성하면 되고, camel 표기법을 사용한다. 메소드 이름은 이 메소드가 어떤 기능을 수행하는지 쉽게 알아볼 수 있도록 지어주는 것이 좋다.
메소드가 실행할 때 필요한 데이터를 외부로부터 받기 위해 사용된다.
매개 변수를 배열타입으로 선언하거나 ...로 선언하면 된다.
ex)
public class Computer {
int sum1(int[] values) {
for(int i = 0; i < values.length; i++) {
sum += values[i];
}
return sum;
}
int sum2(int ... values) {
int sum = 0;
for(int i = 0; i < values.length; i++) {
sum += values[i];
}
return sum;
}
}
리턴타입이 있는 메소드는 반드시 리턴문을 사용해야 한다. return문 이후의 실행문은 결코 실행되지 않으므로, return문은 마지막에 둔다.
리턴값이 없을때는 void를 사용한다. void로 선언된 메소드에서도 return문을 메소드 실행을 강제종료 시키는 역할로 사용할 수 있다.
break; 와 비슷하지만 return문은 메소드를 즉시 종료시키기 때문에 뒤에 추가적으로 실행문이 있을 경우에는 return; 대신 break; 를 사용한다
메소드는 클래스 내. 외부의 호출에 의해 실행된다.
클래스 내부의 다른 메소드에서 호출할 경우에는 단순히 메소드 이름으로 호출하면 되지만, 클래스 외부에서 호출할 경우에는 클래스로부터 객체를 생성한 뒤에 참조 변수를 이용해서 메소드를 호출해야 한다.
클래스 내에 같은 이름의 메소드를 여러 개 선언하는 것을 메소드 오버로딩 이라고 한다. 메소드 오버로딩의 조건은 매개 변수의 타빙, 개수, 순서 중 하나가 달라야 한다는 점이다.