람다식 : 익명함수(anonymous function)을 이용해 익명객체 생성하는 식
인터페이스를 이용해 껍데기를 만들고 기본적으로 함수를 만들어 원하는 대로 사용 가능한 것
객체지향이 아닌 함수(절차)지향으로 프로그래밍하는 방법
객체를 따로 만들 필요 없이 메소드의 핵심적인 부분 ( 파라미터와 실행문 ) 만을 이용해 원하는 결과를 도출
인터페이스1~4
public interface No9_Lamda_Interface1 {
public void method(String s1, String s2, String s3);
}
public interface No9_Lamda_Interface2 {
public void method(String s1);
}
public interface No9_Lamda_Interface3 {
public void method();
}
public interface No9_Lamda_Interface4 {
public int method(int a, int b);
}
실행클래스
public class No9_Lamda_Main {
public static void main(String[] args) {
// 매개변수와 실행문만으로 작성
No9_Lamda_Interface1 In1 = (String a, String b, String c) -> {System.out.println(a+" "+b+" "+c);};
In1.method("this", "is", "Lamda");
// 매개변수가 1개이거나 매개변수들의 타입이 같을때-> 타입생략가능
No9_Lamda_Interface2 In2 = (s1)->{System.out.println(s1); };
In2.method("Fighting");
// 실행문이 1개일때 '{}' 생략가능
No9_Lamda_Interface2 In3 = (s1)-> System.out.println(s1);
In3.method("skip");
// 매개변수와 실행문이 1개일때 '()' 와 '{}' 생략가능
No9_Lamda_Interface2 In4 = s1 -> System.out.println(s1);
In4.method("double skip");
// 매개변수가 없을 때 '()'만 작성
No9_Lamda_Interface3 In5 = ()-> System.out.println("no parameter");
In5.method();
// 반환값이 있는 경우
No9_Lamda_Interface4 In6 = (x,y)->{
int result = x+y;
return result;
};
System.out.printf("In6.method(x,y) : %d\n", In6.method(3, 4));
In6 = (x,y)->{
int result = x-y;
return result;
};
System.out.printf("In6.method(x,y) : %d\n", In6.method(20, 4));
// 인터페이스는 껍데기니까 유연하게 사용 가능한 것
}
}
'Java' 카테고리의 다른 글
[Java] Collections(1)_List 인터페이스 (0) | 2021.08.02 |
---|---|
[Java] StringBuffer, StringBuilder (0) | 2021.08.01 |
[Java] 추상클래스 (0) | 2021.07.29 |
[Java] 비트연산 (0) | 2021.07.29 |
[Java] 인터페이스 (0) | 2021.07.27 |