메소드
작업 단위로 문장들을 묶어 이름을 붙인 것.
값을 입력받아 처리하고 결과를 출력한다.
함수와 비슷한 기능을 한다.
장점
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;
'자바' 카테고리의 다른 글
메소드 오버로딩, 생성자 (0) | 2022.07.14 |
---|---|
static 메소드 / 인스턴스 메소드 (0) | 2022.07.13 |
클래스와 변수 (0) | 2022.07.12 |
객체와 클래스 (0) | 2022.07.12 |
로또 번호 생성하기 (배열, 다중 for문, break, 난수 생성, 중복 번호 제거) (2022-06-28) (0) | 2022.06.29 |