HappyWeasel

Java - 람다식 (Lambda) 본문

Basic/Java

Java - 람다식 (Lambda)

HappyWeasel 2019. 4. 20. 16:03

람다식이란?

기존의 객체지향이 아닌 함수지향 프로그래밍 방법이다.
익명 함수(anonymous function)을 이용하여 익명 객체를 생성한다.

 

public interface LambdaInterface1 {
	public void method (String s1, String s2, String s3);
}
public interface LambdaInterface2 {
	public void method (String s1);
}
public interface LambdaInterface3 {
	public void method ();
}
public interface LambdaInterface4 {
	public int method (int x, int y);
}
public class excute {
	public static void main(String[] args) {
		
		//매개변수와 실행문만으로 작성한다. (접근자, 반환형, return 키워드 생략)
		LambdaInterface1 li1 = (String s1, String s2, String s3) -> { System.out.println(s1 + " " + s2 + " " + s3); };
		li1.method("Hello", "java", "World");
		
		System.out.println();
		
		// 매개변수가 1개, 타입이 같을 때, 타입을 생략할 수 있다.
		LambdaInterface2 li2 = (s1) -> { System.out.println(s1); };
		li2.method("Hello");
		
		// 실행문이 1개 일 때, '{}' 괄호를 생략할 수 있다.
		LambdaInterface2 li3 = (s1) -> System.out.println(s1);
		li3.method("Hello");
		
		// 매개변수와 실행문이 1개 일 때, '()', '{}' 괄호를 생략할 수 있다.
		LambdaInterface2 li4 = s1 -> System.out.println(s1);
		li4.method("Hello");
		
		System.out.println();
		
		// 매개변수가 없을 때, '()' 만 써준다.
		LambdaInterface3 li5 = () -> System.out.println("no Parameter");
		li5.method();
		
		System.out.println();
		
		// 반환값이 있는 경우
		
		LambdaInterface4 li6 = (x, y) -> {
			int result = x + y;
			return result;
		};
		System.out.printf("li6.method(10, 20) : %d\n", li6.method(10, 20));
		
		li6 = (x, y) -> {
			int result = x * y;
			return result;
		};
		System.out.printf("li6.method(10, 20) : %d\n", li6.method(10, 20));
		
		li6 = (x, y) -> {
			int result = x - y;
			return result;
		};
		System.out.printf("li6.method(10, 20) : %d\n", li6.method(10, 20));
		
	}
}

 

'Basic > Java' 카테고리의 다른 글

Java - JVM에 대하여 (스크랩)  (0) 2019.04.20
Java - 문자열 클래스  (0) 2019.04.20
Java - 추상화 ( Abstract)  (0) 2019.04.16
Java - Map  (0) 2019.04.15
Java - JVM, JRE, JDK  (0) 2019.04.15
Comments