inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

인프런 워밍업 클럽 0기 - 백엔드 코스 (과제 3)

한범석
0

익명 클래스와 람다식

 

람다식을 알아보기 위해서는 함수형 프로그래밍에 대해 알아보아야 한다.

 

함수형 프로그래밍은 프로그래밍의 패러다임입니다.

이전의 절차지향 프로그래밍이나 객체지향 프로그래밍과 같이 생겨난 새로운 패러다임 중 하나입니다.

함수형 프로그래밍은 자료 처리를 수학적 함수의 계산으로 취급하고 상태와 가변 데이터를 멀리하는 프로그래밍 패러다임의 하나이다.

 

프로그래밍에는 명령형 프로그래밍과 선언적 프로그래밍이 있다.

함수형 프로그래밍은 선언적 프로그래밍이며, 람다가 지원되기 이전까지 자바는 완전한 명령형 프로그래밍이었다.

 

함수형 프로그래밍의 조건

 

함수형 프로그래밍의 특징

 

람다식은 메서드를 하나의 식으로 표현하는 선언적 프로그래밍의 방법이다.

이전에는 익명 클래스를 이용하여 익명 구현 객체를 사용할 수 있었다.

 

람다식의 특징

 

람다식 사용법

(int a1,int a2) -> {return a1+a2;}
(int a1,int a2) -> a1+a2;
(int a1) -> System.out.println(a1);
a1 -> System.out.println(a1);

 

익명 클래스

public static void main(String[] args) {
        Comparator<Integer> comp = new Comparator<Integer>() {
            @Override
            public int compare(Integer o1, Integer o2) {
                return o1.compareTo(o2); 
            }				
        };

        System.out.println(comp.compare(2, 1));
    }

 

함수형 인터페이스

함수형 인터페이스는 제너릭 타입을 타입 파라미터로 가진다. 인터페이스에 정의된 하나의 추상 메서드는 함수형 인터페이스의 구현체인 람다함수를 실행시킬 메서드가 된다.

함수형 인터페이스의 활용 방법 : https://bcp0109.tistory.com/313

 

람다식 vs 익명 클래스

 

메소드 레퍼런스

람다 표현식을 더 간단하게 표현하는 방법

람다 표현식으로 표현할 경우

Consumer<String> func = text -> System.out.println(text);
func.accept("Hello");

메소드 레퍼런스로 표현할 경우

Consumer<String> func = System.out::println;
func.accept("Hello");

 

 

Reference

백엔드 익명클래스 람다식 함수형프로그래밍 함수형인터페이스 메서드레퍼런스

답변 0