본문 바로가기
스터디/워밍업-클럽

[인프런 워밍업 클럽] 3일차 - 익명 클래스와 람다식

by 빙수야 팥빙수야 2024. 2. 21.

😎 자바의 람다식은 왜 등장했을까?

 

문제점

기존의 자바는 메서드를 매개변수로 전달하지 못했습니다.

메서드를 매개변수로 전달하기 위해서는 인스턴스 생성 후에 해당 메서드를 호출해야 했습니다.

 

해결방법

메서드를 매개변수로 전달하기 위해 자바 8에서 도입된 기능이 람다식입니다.

인스턴스화를 거친 후에 메소드를 전달했던 불편한 부분을 람다식으로 해결할 수 있습니다.

또한, 함수형 인터페이스의 인스턴스를 생성하여 함수를 변수처럼 선언하는 람다식은 불필요한 코드를 줄이고, 가독성이 높아졌습니다.

 

람다식이란?

메서드를 하나의 식(expression)으로 표현한 것입니다.

메서드를 람다식으로 표현하면 메서드의 이름이 필요 없기 때문에 람다식은 익명 함수의 한 종류라고 볼 수 있습니다.

 

🔗 람다식과 익명 클래스는 어떤 관계가 있을까?

람다식은 익명 클래스의 객체와 동등합니다.

위 그림은 익명 클래스 인스턴스와 람다와의 연관 관계를 작성한 그림입니다. 변환 과정을 한눈에 볼 수 있습니다.

이렇게 람다 표현식은 익명 클래스 코드를 줄여 보기 편하게 만들어 줍니다.

 

📓 람다식의 문법은 어떻게 될까?

// 기존의 방식
반환타입 메서드이름 (매개변수 선언) {
	문장들
}

// 람다 방식
(매개변수 선언) -> { 문장들 }

 

람다 표현식은 반환 타입과 메서드 이름을 없애고, 매개변수가 수행할 식이 들어갑니다.

// 람다식 X
int c = sum(a, b);
public int sum(int a, int b) {
	return a + b;
}

// 람다식 O
int c = (int a, int b) -> {return a + b};

 

 

 

강의 링크

https://inf.run/XKQg

 

참고 링크

https://junior-datalist.tistory.com/40

https://mangkyu.tistory.com/113

https://cano721.tistory.com/170

https://www.codelatte.io/courses/java_programming_basic/O2PZAC2T82LKBXAY

https://uno-gaebal.tistory.com/18