메서드는 선언부와 구현부( {} )로 이루어져 있다.
1
2
3
|
반환타입 메서드명 (매개변수선언) { /* 몸통 */ }
int plus (int a, int b) {}
void attack () {}
|
cs |
메서드 선언부에서는 메서드의 반환타입과 메서드명, 매개변수 선언을 작성해야 한다.
매개변수 선언 시 두 타입이 달라서 변수 타입을 생략할 수 없다.
만약 반환타입과 매개변수가 필요없을 때는 반환타입에 void, 매개변수 선언은 비워둔다.
메서드의 구현부에는 메서드를 호출했을 때 수행될 문장을 넣는다.
return문
메서드의 구현부 안에는 "return 반환값;"이 포함되어야 한다. 메서드의 반환값이 void인데 return문이 없을 경우 컴파일러가 메서드의 마지막에 'return;'을 자동으로 생성한다.
이때 return문의 반환값의 타입은 반환타입, 반환한 값을 저장하는 변수의 타입과 일치해야 하며, 자동형변환이 가능하다.
메서드 선언부를 수정하면 해당 메서드가 사용된 모든 부분을 수정해야 하므로 메서드 선언부 작성에 유의한다.
메서드 호출
1
23
4 |
메서드이름(값1, 값2 ...); //메서드 호출 방법
int sum = plus(3, 5);
attack;
클래스명.int sum = plus(3, 5); //클래스가 다를 때 |
cs |
메서드를 호출할 때 괄호()안에 지정해준 값들을 '인자(argument)" 또는 인수라고 하며, 인자의 개수와 순서는 호출된 메서드에 선언된 매개변수와 일치해야 한다.
같은 클래스 내의 메서드끼리는 참조변수를 사용하지 않고도 서로 호출이 가능하지만 static메서드는 같은 클래스 내의 인스턴스 메서드를 호출할 수 없다. 이는 프로그램 실행 시 static메서드는 인스턴스를 생성하지 않아도 메모리의 메서드영역에 저장되어 사용이 가능한 반면, 인스턴스메서드는 인스턴스를 생성해야 사용이 가능하기 때문이다. static메서드에서 인스턴스메서드를 사용하려하는 것은 없는 메서드를 사용하려하는 것이므로 에러가 발생한다.
매개변수의 유효성 검사
매개변수의 타입만 맞으면 어떤 값이든 입력할 수 있기 때문에 메서드 실행 시 매개변수가 유효한지 확인해야 한다.
if문과 return문을 사용하여 간단한 유효성 검사를 작성할 수 있다.
'Java > Java의 정석 - 객체지향프로그래밍' 카테고리의 다른 글
변수의 초기화 (0) | 2022.02.03 |
---|---|
생성자(Constructor) (0) | 2022.02.03 |
OOP - 오버로딩(overloading) (0) | 2022.02.03 |
클래스 메서드(static메서드)와 인스턴스 메서드 (0) | 2022.02.03 |
OOP 정의 (0) | 2022.02.03 |