6.3.1 메서드란
- 특정 작업을 수행하는 일련의 문장을 하나로 묶는 것
- 수학의 함순와 달리 입력과 출력이 없을 수 있다.
- 내부적 과정을 몰라도 되기 때문에 '블랙박스(black box)'라 한다.
6.3.2 메서드를 사용하는 이유
- 높은 재사용성(reusability)
- 한번 잘 만들어 놓으면 다른 프로그램에서도 사용 가능하다.
- 중복된 코드 제거
- 중복된 코드를 하나의 메서드로 묶어 전체적인 코드의 양을 줄일 수 있다.
- 프로그램의 구조화
- 메서드를 작업 단위로 하여 프로그램을 구조화 시킨다.
6.3.2 메서드의 선언과 구현
- 메서드는 선언부와 구현부로 나눌 수 있다.
6.3.3 메서드 선언부(method declaration, method header)
- 반환 타입, 메서드 이름, 매개변부 선언으로 구성되어 있다.
- 메서드가 작업을 수행하기 위해 어떤 값을 필요로 하고 작업의 결과로 어떤 타입의 값을 반환하는지 정보 제공
반환타입 메서드이름(매개변수)
int add(int x, int y)
- 반환 타입
- 반환값이 없는 경우 반환 타입으로 'void'를 적어야 한다.
- 메서드 이름
- 메서드가 어떤 동작을 하는지 함축적이면서도 의미있는 이름으로 해야 한다.
- 매개변수
- 동작에 필요한 값을 입력받기 위한 것
- 두 매개변수 타입이 같더라도 변수 타입을 생략할 수 없다
int add(int x, int y) //정상 작동 int add(int x,y) //Error! 매개변수 타입 생략 불가
6.3.4 메서드 구현부(method body)
- 괄호 {} 내부에서 동작을 하는 부분
- return문
- 반환 타입이 void가 아닌 경우, 구현부 안에 return이 반드시 포함되어야 한다.
- return의 결과 타입은 반환 타입과 일치하거나, 자동 형변환을 할 수 있어야 한다.
- 하나의 값만 반환 할 수 있다.
6.3.5 메서드의 호출
- 메서드를 호출해야만 구현부가 실행된다.
6.3.6 인자(argument)와 매개변수(parameter)
- 메서드를 호출할 때, 괄호안에 지정한 값을 인자라고 한다.
- 호출하려는 매개변수와 인자는 일치하거나, 자동 형변환을 해야 한다.
- 인자의 값은 복사가 되어서 매개변수의 값에 들어간다.
6.3.7 메서드의 실행흐름
long add(long a, long b){
return a+b;
}
long value = add(1L, 2L)
- main 메서드에서 add를 호출한다
- 호출과 동시에 인자의 값이 매개변수에 복사(대입)된다.
- add 메서드가 실행되고 값을 반환한다.
- add 메서드에서 반환된 값이 value에 대입된다.
6.3.8 return문
- 반환타입이 void가 아닐경우 return이 반드시 포함되어야 한다.
void test1(){} //return;생략
int test2(int a){
return a;
}
6.3.9 매개변수의 유효성 검사
- 매개변수의 검증을 통해 매개변수의 값을 제한하거나 보정을 한다.
- 매개변수로인한 에러 방지
'자바의 정석 정리' 카테고리의 다른 글
자바의 정석 - 6.5 재귀호출 (0) | 2022.06.10 |
---|---|
자바의 정석 - 6.4 JVM의 메모리 구조 (0) | 2022.06.10 |
자바의 정석 - 6.2 변수 (0) | 2022.06.10 |
자바의 정석 - 6.1 객체지향언어 (0) | 2022.06.10 |
자바의 정석 - 5.3 가변 배열 (0) | 2022.06.07 |