프로그래밍 언어/자바의 정석 기초편

자바의 정석 기초편 ch6-17~19 메서드호출

life grow 2022. 7. 28. 16:19

6-17 메서드의 호출

 

 

메서드를 호출해야만 구현부{}의 문장들이 수행된다.

 

인수, 인자: 메서드를 호출할 때 괄호() 안에 지정해준 값들

매개변수:  메서드를 호출한 쪽에서 준 값을 add메서드한테 전달하는 중간 역할

 

인자의 개수와 순서는 호출된 메서드에 선언된 매개변수와 일치해야 한다.

매개변수의 개수가 다르거나 타입이 다르면 컴파일러가 경고를 한다.

(자동형변환 되는건 가능)

 

6- 18 메서드의 실행 흐름

 

6-19 메서드의 실행 흐름 예제

 

작업을 마치면 호출한 곳으로 돌아온다.

1. add메서드에게 내가 3 하고 5를 줄테니까 더해서 나한테 줘

2. add메서드가 그 값을 받아다가 구현부에 문장들을 실행하고 작업을 마친다.

3. 작업을 마치고 돌아와서 작업의 결과물을 mm.add(5L, 3L)에 돌려준다.

 

 

예제 코드

import java.util.Scanner;

public class TruckExam {

	public static void main(String[] args) {
		MyMath mm = new MyMath();
		long max = mm.max(5L, 3L);
		long min = mm.min(5L, 3L);
		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("max(5L, 3L) = " + max);
		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 max(long a, long b) {
		return a > b ? a : b;
	}
	long min(long a, long b) {
		return a < b ? 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; 
	}
}