람다 표현식이란?
간단히 말하면 메소드를 하나의 식으로 표현한 것이다. ● 람다표현식 기본 구조 : (매개변수목록) -> {함수몸체}
메서드를 람다식으로 표현하면 객체를 생성하지 않아도 메소드를 사용할 수 있다.
[기본 메서드 ]
int sum(int x, int y){ return x+y };
[람다 표현식]
(x,y) -> x+y
[ 기본메서드 → 람다 표현식으로 바꾸기 ]
int sum(int x, int y) { return x+y }; 1) 메서드 이름과 반환타입
(int x, int y) { return x+y }; 2) 매개변수와 몸통{} 사이에 '->'추가
(int x, int y) -> { return x+y }; 3) 반환값은 return문 대신 식으로 대신 표현(식의 연산결과가 자동적으로 반환됨)
(int x, int y) -> x+y ※ 문장(statement)이 아니고 식(expression)이므로 끝에 세미콜론; 이 붙지 않는다.
(x, y) -> x+y ※ return문을 계속 쓸 경우 몸통{ } 을 생략할 수 없다.
※ 매개변수의 타입을 추론할 수 있는 경우에는 타입을 생락할 수 있다.
※ 매개변수가 하나인 경우에는 괄호()를 생략할 수 있다.
일반적으로 자바에서는 클래스의 선언과 동시에 객체를 생성하므로, 단 하나의 객체만을 생성할 수 있는 클래스를 익명 클래스라고 한다.
따라서 람다식은 메서드 이름과 반환값이 없어지므로 익명 함수(anonymous function)과 같다고 할 수 있다.
[ 람다 표현식 ]
(int x, int y) -> x+y
[ 익명 클래스 ]
new Object(){
int sum(int x, int y){
return x+y;
}
}
'Programming > Java' 카테고리의 다른 글
[JAVA] 자바 개발환경 세팅하기(Java, Eclipse) (0) | 2022.09.22 |
---|---|
[JAVA] 자바를 시작하며..(JVM, JDK, JRE) (0) | 2022.09.19 |
[JAVAFX] Eclipse에서 JavaFX lib 설치.시작하기 (0) | 2022.08.11 |
[JAVA] Static 이란? (0) | 2022.08.02 |
[JAVA] return문 (0) | 2022.08.02 |