본문 바로가기
study/Java

[Java] 28. Lambda4 (매개변수, 리턴값이 있는 경우)

by 금이패런츠 2022. 3. 23.
728x90
반응형
package chap10;
/*
 * 매개변수, 리턴값이 있는 경우
 * (매개변수,매개변수) -> { return 리턴값 };
 * 리턴값 : 추상메서드의 리턴타입인 값
 * 
 * 구현되는 문장이 return 값 인 경우는 return 구문을 생략 가능
 */
interface LambdaInterface4 {
	int method(int x, int y);
}
public class LambdaEx4 {
	public static void main(String[] args) {
		LambdaInterface4 f = (x,y) -> {
			return x+y;
		};
		f=(x,y)->x+y;
		System.out.println(calc(f,10,20));
		System.out.println(calc((x,y)->x+y,10,20));
		//두 수의 곱
		f = (x,y) -> { return x*y;};
		f = (x,y) -> x*y;
		System.out.println("두 수의 곱: " + f.method(10,20));
		System.out.println("두 수의 곱: " + calc((x,y)->x*y,10,20));
		
		//두 수의 차이
		System.out.println("두 수의 차이: " + calc((x,y)->x-y,10,20));
		
		//두 수의 몫
		System.out.println("두 수의 몫: " + calc((x,y)->x/y,100,20));
		
		//두 수의 나머지
		System.out.println("두 수의 나머지: " + calc((x,y)->x%y,51,5));
		
		//두 수 중 큰값
		System.out.println("두 수 중 큰값: " + calc((x,y)->(x>y)?x:y,51,52));
		
		//두 수 중 작은값
		System.out.println("두 수 중 작은값: " + calc((x,y)->(x<y)?x:y,51,52));
		
	}
	static int calc(LambdaInterface4 f, int x,int y) {
		return f.method(x, y);
	}
}
728x90
반응형