메서드(Method)
1) 특정 작업을 수행하는 일련의 문장들을 하나로 묶은 것
2) 값(입력)을 받아서 처리하고, 결과를 반환(출력)
cf. 메서드는 수학의 함수와 유사하지만 함수와 다르게 입력값 또는 출력값이 없을 수도 있고, 입력값과 출력값 모두 없는 경우도 있음
1. 메서드의 장점
1) 중복 코드 제거
2) 코드 관리 용이
3) 코드 재사용 가능
2. 메서드의 선언(parameter declaration)과 구현
// 반환타입 메서드명(타입 변수명, 타입 변수명, ..., 타입 변수명) // 매개변수는 0개 ~ n개 가능, 각 변수마다 타입을 필수로 써줘야함(안쓰면 ERROR)
int add(int x, int y) // 메서드 선언부: 반환타입 int, 메서드명 add, 매개변수 int형 x, y
// 메서드 구현부: 메서드 호출 시 수행될 코드
{
int result = x + y;
return result; // 호출한 메서드로 결과 반환(반환타입 void 일 때 0개, 그 외 반환값은 최대 1개 허용, 결과가 2개 이상일 때 배열로 반환 필요)
// 결과 값은 반환타입과 일치하거나 자동 형변환 가능한 것이어야 함
}
3. 메서드의 호출
메서드명(값1, 값2, ...); // 메서드 호출 방법
print99danAll(); // void print99danAll() 호출(void는 출력할게 없다는 뜻)
int result = add(3, 5); // int add(int x, int y)를 호출하고 결과를 result에 저장
4. 인수(argument)와 매개변수(parameter)
1) 인수(=인자): 메서드 호출 시 괄호안에 지정해준 값, 인자 개수, 순서, 타입은 호출된 메서드에 선언된 매개변수와 일치해야 함
2) 매개변수(parameter): 메서드에 선언된 괄호안에 변수
5. 메서드의 실행 흐름
class MethodEx{
public static void main(String[] args) {
MyMath mm = new MyMath(); // 순서1. 인스턴스 생성
long result = mm.add(5L, 3L); // 순서2. 메서드 호출
System.out.prinln("add(5L, 3L) = " + result); // 순서5. 되돌아와서 이후 문장 실행
}
}
class MyMath{
long add(long a, long b) { // 순서3. 인수 5L, 3L가 메서드 add의 매개변수 a, b에 각각 복사(대입)되어 실행
long result = a + b;
return result; // 순서4. add의 모든 문장이 실행되거나 return문을 만나면 호출한 main메서드로 되돌아감
}
}
'Java' 카테고리의 다른 글
Java 호출 스택(call stack) (0) | 2022.10.04 |
---|---|
Java return문, 반환값 (0) | 2022.10.03 |
Java 선언위치에 따른 변수의 종류 - 클래스 변수, 인스턴스 변수, 지역변수 (0) | 2022.10.02 |
Java 클래스의 정의 (0) | 2022.10.02 |
Java 객체 배열 (0) | 2022.10.02 |