함수와 메소드의 차이 : 함수는 객체와 상관없이 코드를 묶어 놓은 것, 메소드는 객체와 관련하여 기능을 정의한 것
함수형 프로그래밍이란?
데이터 처리부에서 데이터는 동일하고, 외부에 있는 다양한 함수만 가져와 여러가지 처리를 하는 프로그래밍
람다식
자바8부터 함수형 프로그래밍을 지원하기 위해 만들어진 식으로 람다식은 함수의 내용부분에 해당한다.
형태 : (매개변수, ... ) -> {처리 내용}
하지만 자바는 객체지향 프로그래밍이므로 람다식은 익명 구현 객체에서 사용되어야 한다!
인터페이스를 통해 익명 구현 클래스를 만들 때,
인터페이스 변수 = new 인터페이스 { ... };
{}안에 람다식을 작성해 준다.
결국 자바에서 데이터 처리부는 '메소드'를 의미하고, 그 안의 변수는 데이터를 의미한다.
메소드 안에서 추상 메소드를 호출하여 다양한 익명 구현 클래스의 함수식을 이용할 수 있게 되는 것이다.