이름 뒤에 소괄호
단, 키워드 뒤에 ()는 메소드가 아니다.
특정한 작업을 하기 위한 로직을 따로 분리하여 관리하는 영역
f (x) = 2x+1
메소드 매개 리턴값
이름 변수
①리턴타입 ②메소드명(③자료형 매개변수, 자료형 매개변수, ...){
④호출시 실행할 문장;
⑤return 리턴값;
}
① return 뒤의 값에 타입에 맞는 자료형을 작성해준다. 리턴값이 없을 때에는 void로 작성한다.
② 동사형으로 작성한다. eat("밥") eat("피자") eat("치킨")
③ 생략 가능하다. 하지만 생략시에는 외부(사용하는 곳)에서 값을 전달받을 수
없고, 여러 값들을 전달받아야 할 때에는 ,로 구분하여 값의 갯수만큼 선언해준다.
④ 생략 가능하다.
⑤ 생략 가능하다.
(두 정수의 덧셈 메소드)
1. 메소드 명을 생각한다.
void add(){
}
2. 매개변수를 생각한다.
void add(int num1, int num2){
}
3. 실행할 문장을 생각한다.
void add(int num1, int num2){
System.out.println("두 정수의 덧셈메소드");
int result = num1+num2;
}
4. 리턴값을 생각한다.
void add(int num1, int num2){
System.out.println("두 정수의 덧셈메소드");
int result = num1+num2;
return result;
}
5. 리턴타입을 수정한다.
int add(int num1, int num2){
System.out.println("두 정수의 덧셈메소드");
int result = num1+num2;
return result;
}
메소드는 클래스 내부에 있으므로 그 메소드가 속해있는 클래스 타입으로
먼저 변수를 만들어 주어야 한다.(객체를 만들어 주어야 한다.)
클래스명 변수명 = new 클래스명();
변수.메소드명(값1,값2,...); //매개변수의 개수와 타입에 맞게 값을 넘겨주어야한다.
변수.메소드명(); //매개변수가 없다면 그대로 이름으로 사용
메소드 사용 부분은 선언부 마지막에 return값이 있다면 사용한 부분 통째로 그 리턴값으로
보아야 한다. 단, return값이 없다면 절대 값으로 봐서는 안된다.
메소든 내부에 모든 기능이 구현되지 않을 때
사용하는 부분에서 아직 할 작업이 남았을 때
메소드 기능의 결과를 사용하는 부분에 알려주어야 할 때
ex)
MethodTask m = new MethodTask();
System.out.println(m.hab(4, 14));
//n부터 m까지의 합을 구해주는 메소드
int hab(int ny, int my) {
int nm =0;
for (int i = ny; i <=my; i++) {
nm += i;
}
return nm;
}
실행 결과
메소드 내부에서 출력까지 모든 기능이 구현될 때
ex)
//1~10까지 출력해주는 메소드
void print1Num10() {
for (int i = 1; i <= 10; i++) {
System.out.println(i);
}
}
실행 결과