반환타입 메소드이름 (매개변수, ...) {
실행문
}
public int sum (int x, int y) {
return x + y;
}
🔼 일반적인 메소드 형태
(매개변수, ...) -> { 실행문 ... }
(int x, int y) -> {return x + y;}
🔼 람다 표현식
// Java 프로그래밍 - 람다식
interface ComputeTool {
public abstract int compute(int x, int y);
public abstract int compute2(int x, int y);
}
public class Main {
public static void main(String[] args) {
ComputeTool cTool1 = new ComputeTool() {
@Override
public int compute(int x, int y) {
return x + y;
}
public int compute2(int x, int y) {
return x - y;
}
};
System.out.println(cTool1.compute(1, 2));
// 인터페이스를 이용하는 기존의 방법 (익명 클래스)
// 람다식 (재사용 불가!)
// ComputeTool cTool2 = (x, y) -> { return x + y; };
// System.out.println(cTool2.compute(1, 2));
}
}
// Practice
// 아래 인터페이스를 이용하여 익명클래스로 구현한 내용을 람다식으로 구현해보세요.
interface CompareTool {
public abstract int getMaxNum(int num1, int num2);
}
public class Practice {
public static void main(String[] args) {
// Test code
CompareTool cTool = new CompareTool() {
@Override
public int getMaxNum(int num1, int num2) {
return num1 > num2? num1 : num2;
}
};
System.out.println(cTool.getMaxNum(10, 11));
// 람다식으로 작성
CompareTool cTool2 = (x, y) -> { return x > y? x : y; };
System.out.println(cTool2.getMaxNum(10, 11));
}
}