1. 함수형 인터페이스란?
기본 세팅은 Java 11 Maven Spring Web 추가 후
나머지 다 삭제하기
1-1) 함수형 인터페이스
1-2) 함수형 인터페이스를 사용하는 이유?
자바의 람다식은 함수형 인터페이스로만 접근 되기 때문에
함수형 인터페이스를 사용함.
함수형 인터페이스를 사용하는 것은 람다식으로 만든 객체에 접근하기 위해서
람다식을 사용할 때마다 함수형 인터페이스를 매번 정의하기에는 불편하기에
자바에서 라이브러리로 제공하는 것들이 있음.
1-3) 기본 함수형 인터페이스
1-4) 함수(function) vs 메소드(Method)
2. 함수형 인터페이스 활용
2-1) 함수형 인터페이스 생성
추상화 : 미완성 메소드(선언부만 있고, 구현부가 없는 메소드)
추상화는 선언부만 있고 구현부가 없는 메소드를 뜻합니다.
추상 클래스는 객체를 생성할 수 없고,
상속받는 자식클래스에서 구현부가 없는 메소드를 완성해야합니다.
하지만 자바 8부터 인터페이스 안에 static과 default 메소드 생성 가능
2-1)-1. interface LambdaFunction
2-1)-2. 추상과 인터페이스
/**
* 추상 클래스(일반 메소드 추상 메소드 둘 다 사용 가능)
* 추상 메소드
* 선언부만 있고 구현부는 없으며 리턴 역시 없다.
*
* 추상 클래스 상속시 강제성
* 추상 클래스로 만든 추상 메소드의 경우 상속 받은 자식 클래스는
* 추상 메소드를 오버라이딩(재정의) 해 무조건적으로 사용해야 함.
*/
/**
* 인터페이스(다중 상속)
* 일반 메소드를 받을 수 없어 추상 클래스보다 더 엄격함.
*
* 인터페이스 상속시 더 엄격함.
* 자식클래스에서 인터페이스를 상속 받으면 메소드를
* 무조건 사용해야 한다.
*/
2-2) 함수형 인터페이스 사용
2-2)-1. class LambdaFunctionBasic
2-3) 자바에서 함수형 프로그래밍
2-3)-1. interface HighOrderFunction
2-3)-2. class HighOrder
3. 자바에서 제공하는 함수형 인터페이스
3-1) 자바에서 제공하는 함수형 인터페이스 기본
어떤 값 T를 받고 리턴은 R로 둘의 값이 다른 이유는 타입이 다를 수 있기 때문에
T와 R로 정의되어 있음.
Function<T, R> 종류
3-2) Function<T, R> : .apply()
3-2)-1. class FunctionGenericType implements Function<Integer, Integer>
3-2)-2. class FunctionGeneric
5분부터