메서드
메서드의 정의
- 특정 작업을 수행하는 일련의 문장들을 하나로 묶은 것
- 선언부와 구현부로 구성되어 있음
- 주로 동사로 네이밍함
다양한 형태의 메서드
반환타입O 매개변수X
반환타입 메소드명(){
return;
}
리턴값받을변수 = 객체.메소드명();
반환타입O 매개변수O
반환타입 메소드명(매개변수){
return;
}
리턴값받을변수 = 객체.메소드명(입력인수1, 입력인수2, ...);
반환타입X 매개변수O
void 메소드명(매개변수){
}
객체.메소드명(입력인수1);
반환타입X 매개변수X
void 메소드명(){
}
객체.메소드명();
메서드의 선언부
반환타입
- 하나의 값만 반환 가능. 배열을 이용하여 여러 값 반환 가능
- 반환값과 return 값의 타입은 같거나 자동형변환이 가능해야함
- 반환값 없을 시 void로 작성
매개변수
- 메서드 수행을 위해 받아야 할 입력값이 적혀져 있음
- 필요한 값의 개수만큼 변수를 선언해야 하며, 각 변수들은 콤마(,)로 구분
- 매개변수의 타입이 모두 같아도 타입생략 불가
void a (int x, int y){..} //가능
void b (int x, y) //불가
구현부
지역변수
- 메서드 내의 수행문들
- 메서드 내에서 선언된 변수들은 해당 메서드 내에서만 사용 가능
반환문 return;
- 반환값은 실무에서 주로 자료의 '조회'에 사용됨
- 오직 한개만 허용
- void의 경우 생략 가능
- if문과 for문 및 산술연산, 조건연산자(삼항연산자) 사용 가능
- if문일 경우 else값에도 반드시 return;을 넣어주어야 함
메서드 중복정의(Method Overloading)
- 한 클래스 내에 같은 이름의 메서드가 있어도 매개변수의 개수 또는 타입이 다르면 중복정의 가능
int a(int x, int y, int z){}
int a(int a, int b, int c){} // 불가. 같은 타입,갯수의 매개변수가 이미 지정됐기 때문
int a(int x, int y){}
int a(int x, int y, int z){} //가능
int a(int x, double y){}
int a(double x, int y){} //가능