Programming/Java, Spring

[JAVA] 메서드(method)란? return문, 메서드 호출

Juun 2022. 5. 3. 00:36
반응형

메서드(method)란??

  1. 메서드란 작업을 수행하기 위한 명령문의 집합
  2. 블럭 { } 을 묶어 놓은 것, 작업 단위로 문장들의 묶어서 이름을 붙임
  3. 어떤 값을 입력 받아서 처리하고 그 결과를 돌려줌
  4. 클래스 영역에만 정의 가능
  5. 수학의 함수와 유사

메서드의 장점

  •  높은 재사용성과 중복된 코드의 제거

기존에 만들어놓은 메서드는 몇 번이고 호출이 가능하고 같은 내용의 문장들을

메서드로 작성해놓으면 반복하는 문장들 대신 메서드만 호출하면 된다

 

  •  프로그램의 구조화

큰 규모의 프로그램 작성시 문장들의 작업 단위로 나눠서 여러 개의 메서드에 담아 프로그램 구조를 단순화시킬 수 있다

 

메서드의 선언과 구현

메서드는 크게 두 부분으로 나눠져 있는데 '선언부(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

 

참고 : 자바의 정석(도서), 혼자 공부하는 자바(도서)

반응형