반응형
메서드(method)란??
- 메서드란 작업을 수행하기 위한 명령문의 집합
- 블럭 { } 을 묶어 놓은 것, 작업 단위로 문장들의 묶어서 이름을 붙임
- 어떤 값을 입력 받아서 처리하고 그 결과를 돌려줌
- 클래스 영역에만 정의 가능
- 수학의 함수와 유사
메서드의 장점
- 높은 재사용성과 중복된 코드의 제거
기존에 만들어놓은 메서드는 몇 번이고 호출이 가능하고 같은 내용의 문장들을
메서드로 작성해놓으면 반복하는 문장들 대신 메서드만 호출하면 된다
- 프로그램의 구조화
큰 규모의 프로그램 작성시 문장들의 작업 단위로 나눠서 여러 개의 메서드에 담아 프로그램 구조를 단순화시킬 수 있다
메서드의 선언과 구현
메서드는 크게 두 부분으로 나눠져 있는데 '선언부(header)'와 '구현부(body)'로 이루어져 있다
메서드 정의는 선언부와 구현부를 작성한다는 것을 의미
반환타입 메서드이름 (타입변수명, 타입변수명) // 선언부
{ // 구현부
// 메서드 호출시 수행될 코드
}
int addAB(int a, int b)
{
int result = a +b;
return result; // 호출한 메서드로 결과를 반환
}
리턴(return)문
메서드의 반환타입이 'void'가 아닌 경우를 제외하고, 구현부{ } 안에 return문이 반드시 있어야 한다.
return문의 반환타입은 메서드의 반환타입과 일치 시켜야한다!!
int add(int x, int y) // 메서드 add의 반환타입은 int
{
int result = x + y;
return result; // 변수 result의 반환타입 int
} // return문과 메서드의 반환 타입은 일치 시켜야한다!!
※ 반환 타입이 void인 경우는 생략 가능!!!
만약 리턴문을 안써주면 컴파일 에러 발생!
메서드 호출
메서드의 호출 방법
참조변수.메서드 이름(); // 메서드에 선언된 매개변수가 없는 경우
참조변수.메서드 이름(값1, 값2, .....) // 메서드에 선언된 매개변수가 있는 경우
// ( ) : 작업에 필요한 값들
class addMath{
long add(long a, long b){ // 메서드 add는 long 타입, 메서드 호출
long result = a + b; // result 반환타입 long (일치)
return result; // 메서드가 반환한 결과
}
예제, 자바의정석 6-6 참고
class MyMathTest{
public static void main(String args[]){
MyMath mm = new MyMath();
long result1 = mm.add(5L, 3L);
long result2 = mm.subtract(5L, 3L);
long result3 = mm.multiply(5L, 3L);
double result4 = mm.divide(5L, 3L);
System.out.println("add(5L, 3L) = " + result1);
System.out.println("subtract(5L, 3L) = " + result2);
System.out.println("multiply(5L, 3L) = " + result3);
System.out.println("divide(5L, 3L) = " + result4);
}
}
class MyMath{
long add(long a, long b){
long result = a+b;
return result;
}
long subract(long a, long b) {return a - b; }
long multiply(long a, long b) {return a * b; }
double divide(double a, double b) {return a / b; }
}
long타입 result1에 MyMath mm의 메서드 add를 호출
result1 = 8
long타입 result2에 MyMath mm의 메서드 substract를 호출
result2 = 2
long타입 result3에 MyMath mm의 메서드 multiply를 호출
result3 =15
double타입 result4에 MyMath mm의 메서드 divide를 호출
※result4는 double형이지만 long 값으로 호출하였다. 이 값은 double로 자동형변환 된다.
result4 = 1.666666666667
참고 : 자바의 정석(도서), 혼자 공부하는 자바(도서)
반응형
'Programming > Java, Spring' 카테고리의 다른 글
[JAVA] 기본형 매개변수와 참조형 매개변수 (0) | 2022.05.07 |
---|---|
[JAVA] 클래스 메서드(Static메서드)와 인스턴스 메서드(instance method) (0) | 2022.05.04 |
[JAVA] 변수란? / 변수의 종류 / 인스턴스, 클래스, 지역 변수 (0) | 2022.05.01 |
[Java] 클래스(class)와 객체(object), 인스턴스(instance) (0) | 2022.04.26 |
[JAVA] 자바란?? / 객체지향 언어(OOP)와 특징 (0) | 2022.04.25 |