1. 객체지향 프로그래밍 + 함수형 프로그래밍
1) 람다 계산법 사용된 식을 프로그래밍 언어에 접목
2) 람다식 => 매개변수를 가진 코드 블록 => 익명 내부 객체를 생성해서 만들어진다.
2. 람다식 문법
1) 익명 함수(Anonymous Function)를 생성하기 위한 식이다.
2) 매개 변수와 매개 변수를 이용한 실행문
(매개변수) -> {실행문;} |
예) add() 함수
- (두 수를 입력 받아서 더하는 함수)
int add(int x, int y) { return x+y; } |
- 람다식 표현 방법
(int x, int y) -> {return x+y;} |
- 매개 변수가 하나인 경우 자료형과 괄호가 생략 가능하다.
str -> {System.out.println(str);}; |
- 매개 변수가 두 개 이상인 경우 괄호를 생략할 수 없다.
x,y -> {System.out.println(x+y);}; //오류 |
- 실행문이 한문장인 경우 중괄호 생략이 가능하다.
str -> System.out.println(str); |
- 실행문이 한 문장이더라도 return문(반환 문)은 중괄호를 생략할 수 없다.
str -> return str.length(); //오류 |
- 실행문이 한 문장의 반환문인 경우엔 return과 중괄호를 모두 생략 가능하다.
x,y -> x+y; str -> str.length; |
3. 함수형 인터페이스
1) 람다식을 선언하기 위한 인터페이스이다.
2) 익명 함수와 매개변수만으로 구현되므로 인터페이스는 단 하나의 메서드만을 선언해야 한다.
- 단 하나의 abstract method만을 가지는 인터페이스이다.(Single Abstract Method Interface)
3) @FunctionalInterface 어노테이션 (annotation)
- 함수형 인터페이스라는 의미이다.
- 내부에 여러 개의 메서드를 선언하면 에러가 난다.
4. OOP vs Lambda (문자열 두 개를 연결하여 출력하는 것 구현)
1) 객체지향 프로그래밍으로 구현하기
- 인터페이스 선언
- 인터페이스 구현한 클래스 만들기
- 객체 생성하고 메서드 호출하기
2) 람다식으로 구현하기
5. Functional Interface
1) Supplier
- 주기만 한다.
2) Consumer
- 받기만 한다.
3) BiConsumer
- 여러 개를 받기만 한다.
'프로그래밍 > Java' 카테고리의 다른 글
[자바 - Java] 예외처리 오류처리 try catch finally exception throw (0) | 2022.09.12 |
---|---|
[자바 - Java] 스트림 연산 특징 filter map sorted (0) | 2022.09.11 |
[자바 - Java]프로그래밍 방법론 - 함수형 프로그래밍, 객체지향 프로그래밍, 1급 시민, 구조적 프로그래밍, 절차식 프로그래밍, 순수함수 (0) | 2022.09.09 |
[자바 - Java] 내부 클래스 ; 인스턴스 정적 지역 익명 클래스 (0) | 2022.09.08 |
[자바 - Java] 컬렉션 프레임워크 인터페이스 List Set Map Iterator (0) | 2022.09.07 |