람다표현식 사용하여 익명클래스로 객체를 생성하는 방법
형식) (자료형 변수명, 자료형 변수명, ...) -> {명령; 명령; ...};
@FunctionalInterface
public interface Calculate {
int sum(int num1, int num2);
}
public class CalculateApp {
public static void main(String[] args) {
// Calculate calculate = new Calculate();
/*class CalculateImpl implements Calculate {
@Override
public int sum(int num1, int num2) {
return num1 + num2;
}
}
Calculate calculate = new CalculateImpl();
System.out.println("합계 = " + calculate.sum(10, 20));*/
/*
// 지역클래스를 선언하지 않고 익명클래스를 이용하여 객체를 생성해 참조변수에 저장
// => 익명클래스에서는 반드시 모든 추상메소드를 오버라이딩 선언
Calculate calculate = new Calculate() {
@Override
public int sum(int num1, int num2) {
return num1 + num2;
}
};
System.out.println("합계 = " + calculate.sum(10, 20));
*/
// 람다표현식
// Calculate calculate = (int num1, int num2) -> {return num1 + num2;};
// Calculate calculate = (num1, num2) -> {return num1 + num2};
Calculate calculate = (num1, num2) -> num1 + num2;
System.out.println("합계 = " + calculate.sum(10, 20));
}
}