1. 문장들을 묶어놓은 것.
- 작업단위로 문장들을 묶어서 이름 붙인 것
- 첫 번째 : 배열을 초기화
- 두 번째 : 배열을 출력
- 세 번째 : 배열을 출력
- 두 번째 & 세 번째 : 코드 중복 -> 중복을 제거해야 한다.
- 별도의 메서드를 만들어 배열 출력을 담는다. (printArr=메서드명)
- 메서드호출(사용) -> 위의 두 번째와 세 번째가 줄어들고 중복이 제거된다.
2.값(입력)을 받아서 처리하고, 결과를 반환(출력)
- 작업에 사용할 값을 받아서 연산하고 결과를 반환한다.
- 메서드와 함수는 같지만, 메서드는 클래스에 종속적 / 함수는 클래스에 독립적이라는 차이가 있다.
- 코드의 중복을 줄일 수 있다.
- 코드의 관리가 쉽다.
- 코드를 재사용할 수 있다.
- 코드가 간결해서 이해하기 쉬워진다.
- 왼쪽의 중복 코드를 제거할 수 있다.
- 하나의 메서드에서만 관리하면 되므로 관리가 용이하게 된다.
- 메서드를 다른 프로그램에서도 재사용가능하다.
- 반복적으로 수행되는 여러 문장을 메서드로 작성
- 하나의 메서드는 한 가지 기능만 수행하도록 작성
- 배열 초기화 하는 문장과 배열 출력하는 문장을 같이 사용하면 X!!
메서드 = 선언부 + 구현부
- 선언부의 여러개의 타입변수명은 매개변수 목록이라 하며, 입력(작업 필요한)값들을 적는다.(0~n개까지 가능하다.)
- 선언부의 반환타입은 작업결과의 타입이다.
- 구현부는 메서드 호출시 수행될 코드이다.
Ex)
- 입력 값은 0~n개 가능하나, 출력 값은 0~1개 가능하다.
- 출력 값을 여러 개 얻고 싶을 때는 배열을 이용하거나, 객체를 이용해야 한다.
- 반환할 값(출력 값)이 없을 때에는 반환 타입(출력)에 아무것도 없다는 뜻의 void를 적는다.
지역변수(lv) : 메서드 내에 선언된 변수
- 지역 변수 = x,y,result
- x,y = 매개변수(입력값을 받는 변수)이기도 하다.
- 지역변수는 메서드 끝날때까지 유효하다.(메서드 종료시 사라진다.)
- 두 영역이 겹치지 않으므로 이름이 같아도 괜찮다. (밑의 x,y와 밑의 x,y는 다른 것이다.)
- 메서드를 작성해도 혼자서 자동적으로 작업을 하지 않으므로 메서드 호출 작업이 필요하다.
- 메서드 호출은 메서드를 불러와 작업을 시키는 것.
메서드이름(값1, 값2, (작업에 필요한 값들).....)' // 메서드를 호출하는 방법
Ex) print99danAll(); // void print99danAll()을 호출
int result = add(3,5); // int add(int x, int y)를 호출하고, 결과를 result에 저장
- x에 3이, y에 5가 대입되고 result에 연산결과가 대입된다. (그래서 반환타입 int를 사용)
- print99danAll은 void 타입이므로 출력할 값이 없다.
- void가 아닌 경우에는 대입연산자와 변수를 사용해서 값을 저장한다.
- 매개변수(parameter,복사본) - 메서드에서 호출한 값을 연산자에 대입하는 중간역할을 한다.
1. main 메서드에서 메서드 add를 호출한다. 인수 1L과 2Ldl 메서드 add의 매개변수 a,b에 각각 복사(대입)된다.
2. 메서드 add의 괄호{}안에 있는 문장들이 순서대로 수행된다.
3. 메서드 add의 모든 문장이 실행되거나 return문을 만나면, 호출한 메서드(main메서드)로 되돌아와서 이후의 문장들을 실행한다.