메소드
작업 단위로 문장들을 묶어 이름을 붙인 것.
값을 입력받아 처리하고 결과를 출력한다.

함수와 비슷한 기능을 한다.


장점
1) 코드의 중복을 줄일 수 있다.
2) 관리가 쉽고 재사용할 수 있다.
3) 작업 단위로 묶었기 때문에 코드가 간결해져 이해하기 쉬워진다.


반복적으로 수행되는 코드를 메소드로 작성한다.
하나의 메소드는 한 가지 기능만 수행하도록 작성한다.
그렇게 해야 유지보수하기도 쉬워지고, 의미있는 작업 단위로 나눠 재사용하기가 쉽다.


메소드는 선언부와 구현부로 구성되어 있다.

반환타입 메소드이름 (매개변수)// 이 매개변수는 0개에서 n개까지. 없어도 된다.
 구현부;

}

int add ( int a, int b)     // 선언부

                                  // 구현부
{ int result = a + b;
return result; }

 



지역변수 lv

메소드 영역에 선언된 변수
메소드가 종료되면 사라진다. 메소드 내에서만 유효하는 변수.


int add ( int a, int b) {
int result = a + b;
return result; }

int multiply ( int a, int b) {
int result = a * b;
return result; }


add, multiply 두 메소드에서 a와 b가 중복으로 사용되었지만, 각각 다른 메소드 영역에 위치하기 때문에 괜찮다.


메소드는 호출해야 코드가 실행되는데, 호출하는 방법은 다음과 같다.


메소드이름(값1, 값2, ...);

매개변수가 있는 경우

 

int result = add(3,5); // int result의 값은 8이다.

작업 결과를 저장할 변수가 필요하니 int result를 만들어서 그 쪽에 add 메소드를 호출한 것.


메소드 value가 있을 때 실행흐름은 다음과 같다.


long value(long a, long b) {
long result = a +b;
return result; }



1. 객체를 생성한다.
MyMath mm = new MyMath();

2 .메소드를 호출한다.
long value = mm.add (1L, 2L); 

long result에는 1.0+2.0를 연산한 값이 저장된다.
그래서 result에 3.0이라는 값이 저장되어 호출된다.



return
실행중인 메소드를 종료하고 호출한 곳으로 되돌아간다.

메소드를 선언할 때에는 이름 앞에 자료형 타입을 붙이거나 void 를 붙일 수 있다.
타입이 void일 때는 생략 가능하다.
반대로 자료형 타입으로 선언했을 때에는 꼭 붙여야 한다.


int multiply (int x, int y) {
int result = x * y;
return result; }  

void가 아닌 int 타입의 메소드 이므로 반드시 return을 붙여야 한다.

int max(int a, int b {
if (a > b) 
return a; }


 조건식일 때에는 값이 참과 거짓 두 가지가 있다.

그런데 return문이 하나일 때에는 거짓인 경우 return할 값이 없어 에러가 생긴다.

그럴 때는 return문을 참과 거짓의 경우, 두 가지로 작성한다.

return a;
return b;


 

+ Recent posts