[내일배움캠프] Java 기초문법 Chapter 3. 람다

김재진·2025년 12월 15일

내일배움캠프

목록 보기
18/70

1. 람다(Lambda)란?

  • 익명 클래스를 간결하게 표현하는 문법
  • 하나의 추상 메서드만 가져야 하기 때문에 함수영 인터페이스를 통해 구현해야 한다.
  • 컴파일 시점에서 람다 표현식을 보고 컴파일러가 익명클래스를 구현한다.

1-1. 익명 클래스란?

  • 이름이 없는 클래스로 별도의 클래스 파일을 만들지 않고 코드 내에서 일회성으로 정의해 사용하는 클래스를 말한다.
public interface Calculator {

    int sum(int a, int b);
}

public class Main {

    public static void main(String[] args) {
    
		    // ✅ 익명 클래스 활용
        Calculator calculator1 = new Calculator() {
            @Override
            public int sum(int a, int b) {
                return a + b;
            }
        };
        
        int ret1 = calculator1.sum(1, 1);
        System.out.println("ret1 = " + ret1);
    }
}

  • 람다식 활용
public class Main {

    public static void main(String[] args) {
    
		    ...

        // ✅ 람다식 활용
        Calculator calculator2 = (a, b) -> a + b;
        int ret2 = calculator2.sum(2, 2);
        System.out.println("ret2 = " + ret2);
    }
}

2. 람다식을 매개변수로 전달하는 방법

2-1. 람다식을 변수에 담아 전달

  • 람다식을 변수에 담아 매개변수로 전달
public class Main {

    public static int calculate(int a, int b, Calculator calculator) {
        return calculator.sum(a, b);
    }

    public static void main(String[] args) {
        Calculator cal2 = (a, b) -> a + b;
        
        // ✅ 람다식을 변수에 담아 전달
        int ret4 = calculate(4, 4, cal2);
        System.out.println("ret4 = " + ret4); // 출력: ret4 = 8
    }
}

2-2. 람다식을 직접 전달

  • 람다식을 직접 전달
public class Main {

    public static int calculate(int a, int b, Calculator calculator) {
        return calculator.sum(a, b);
    }

    public static void main(String[] args) {
        // ✅ 람다식을 직접 매개변수로 전달
        int ret5 = calculate(5, 5, (a, b) -> a + b);
        System.out.println("ret5 = " + ret5); // 출력: ret5 = 10
    }
}
profile
개발공부 처음해보는 사람

0개의 댓글