자바의 정석 - 기초편

메서드 호출

ODaram 2022. 8. 4. 17:47

메서드의 호출

 메서드 호출하는 방법

   - 메서드이름 (값1, 값2, ... );         // 괄호 안에는 '작업에 필요한 값들' 적어주면 됨

 

메서드 호출 예

  - print99danAll()       // void print99danAll() 을 호출    (별다른 입력값 없이 호출 가능)

  - int result = add(3,5);  // int add(int x, int y)를 호출하고, 결과를 result에 저장

                                                

예제)

class Ex6_4 {
	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;
	//	return a + b;	// 위의 두 줄을 이와 같이 한 줄로 간단히 할 수 있다.
	}
	long subtract(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;
	}
 }

 코드 해석

  1. MyMath 클래스 작성 ( 메서드 작성)

  2. MyMath 객체 생성

3. MyMath 객체 사용 (객체의 메서드 호출)

4. MyMath 클래스에서 작업을 마치면 메서드를 호출한 곳으로 값이 들어온다.

 

예제) 위의 코드를 활용해 "두 값을 받아 둘 중 큰 값을 반환하는 메서드" 작성해보기

class Ex6_4 {
	public static void main(String args[]) {
		MyMath mm = new MyMath();
		long result5 = mm.big(5L, 6L);

		System.out.println("더 큰 값은(5L, 6L) =" +result5);
	}
 }

 class MyMath {
	long big(long a, long b) {
		long result = 0;
		if(a>b) {
			result = a;
		}else {
			result = b;
		}
		return result;
	}
 }
class Ex6_4 {
	public static void main(String args[]) {
		MyMath mm = new MyMath();
		long result5 = mm.big(5L, 6L);

		System.out.println("더 큰 값은(5L, 6L) =" +result5);
	}
 }

 class MyMath {
	long big(long a, long b) {
		long result = 0;
		result = a > b ? a : b;   // 삼항 연산자 사용
        return result;
        // 위 두 문장을 합치면 return a > b ? a : b;
	}
 }

>> 삼항 연산자 사용한 코드

 

메서드의 실행 흐름

메서드 실행 흐름

1. main 메서드에서 메서드 add를 호출한다. 

    인수 1L과 2L이 메서드 add의 매개변수 a, b에 각각 복사 (대입)된다.

2. 메서드 add의 괄호{} 안에 있는 문장들이 순서대로 수행된다.

3. 메서드 add의 모든 문장이 실해애되거나 return문을 만나면, 호출한 메서드(main메서드)로

    되돌아와서 이후의 문장들을 실행한다.