Programming Language/Java
[JAVA] 메서드와 return문
BS Kwak
2021. 7. 15. 11:15
메서드란?
메서드란?
코드의 중복을 제거하기 위해서 { 해당 문자들 }을 묶은 것으로, 값을 입력받아 결과를 출력(반환)한다.
※ 메서드 vs 함수
더보기
메서드는 클래스 안에 들어있어야 하는 것
함수는 클래스에 독립적임
메서드의 장점?
- 중복 코드 제거
- 관리 용이
- 재사용 가능
참고로, 하나의 메서드는 하나의 기능만 수행하도록 작성해야 함
메서드 = 선언부 + 구현부
반환타입 메서드이름 (타입 변수명, 타입변수명, ...) // 선언부
{ // 구현부
//코드 // 구현부
} // 구현부
int add(int x,int y){
int res = x+y;
return res;
}
메서드 호출
메서드 이름(값1, 값2, ...);
위의 형식과 같이 메서드를 호출하는데, return type에 따라 작업 결과를 저장해야 할 경우는 주의해야 함!
→ 예시코드
public static void main(String[] args){
MyMath mm = new MyMath();
//add 메서드 호출
long res1 = mm.add(5L,3L);
double res2 = mm.add(5L,3L);
System.out.println("res1 : "+ res1);
System.out.println("res2 : "+res2);
}
class MyMath{
long add(long a, long b){
long res = a+b;
return res;
}
long substract(long a, long b){ return a-b}
//...
}
★ 메서드는 클래스 영역에만 정의를 저장
메서드의 실행 흐름
1. 객체 생성(인스턴스 생성)
2. 메서드 호출- 메서드의 매개변수에 인수가 각각 대입됨
3. 메서드의 모든 문장이 끝나거나 return을 만나면 반환
return문
return문이란?
실행 중인 메서드를 종료하고 호출한 곳으로 되돌아가도록 한다.
return;
return a;
반환 타입이 void일 경우 생략 가능, 컴파일러가 자동 추가됨
반환 타입이 void가 아닐 경우, 반드시 return문 필요
참고로, 다음의 경우에 "return문이 없다"는 에러가 발생한다.
int max(int a,int b){
if(a>b) return a;
}
Why? 참일경우엔 a를 반환하지만, 거짓일 경우에 어떤 값을 반환해야하는지 없기 때문!
반환값
말 그대로 return되는 값으로, void type이 아닐 때, return 옆에 쓰는 것
반환 type과 반환값의 type이 일치해야 함