인터페이스 3

람다식 표준 API의 함수적 인터페이스, 메소드 참조

표준 API의 함수적 인터페이스 자바에서 제공되는 표준 API에서 한 개의 추상 메소드를 가지는 인터페이스들은 모두 람다식을 이용해서 익명 구현 객체로 표현이 가능하다. 예를 들어 스레드의 작업을 정의하는 Runnable 인터페이스는 매개 변수와 리턴 값이 없는 run() 메소드만 존재하기 때문에 다음과 같이 람다식을 이용해서 Runnable 인스턴스를 생성 시킬수 있다. package Chapter14; public class RunnableExample { public static void main(String[] args) { Runnable r = () -> { for(int i = 0; i < 10; i++) { System.out.println("Hello from thread " + Thre..

람다식

람다식이란? 자바는 객체 지향 프로그래밍이 소프트웨어 개발의 주요 패러다임이였던 1990년대에 디자인 되었다. 객체 지향 프로그래밍 나오기 오래전부터 Lisp 또는 Scheme 와 같은 함수적 프로그래밍 언어들이 있었는데, 학계를 제외하고는 현업에서 큰 호응 받지 못했다. 최근 들어 함수적 프로그래밍이 다시 부각되고 있는데, 병렬 처리와 이벤트 지향 프로그래밍에 적합하기 때문이다. 그래서 객체 지향 프로그래밍과 함수적 프로그래밍을 혼합함으로써 더욱 효율적인 프로그래밍이 될수 있도록 프로그램 개발 언어가 변하고 있다. 자바는 함수적 프로그래밍을 위해 자바 8부터 람다식(Lambda Expressions)을 지원하면서 기존의 코드 패턴이 많이 달라졌다. 람다식은 수학자 알론조 처리(Alonzon Church..

인터페이스

인터페이스의 역할 인터페이스는 객체의 사용방법을 정의한 타입 객체의 교환성을 높여주기 때문에 다형성을 구현하는 매우 중요한 역할 자바8의 람다식은 함수적 인터페이스의 구현 객체를 생성 인터페이스는 개발 코드와 객체가 서로 통신하는 접점 역할 개발 코드가 인터페이스의 메소드를 호출 -> 인터페이스는 객체 메소드 호출 개발 코드는 객체의 내부 구조를 알 필요가 없다. 인터페이스의 메소드만 알고 있으면 된다. 개발 코드가 직접 객체의 메소드를 호출 하면 간단 -> 개발코드를 수정하지 않고 사용하는 객체를 변경할수 있도록 하기 위함 인터페이스는 하나의 객체가 아니라 여러 객체들과 사용이 가능 하므로 어떤 객체를 사용하느냐에 따라 실행 내용과 리턴값이 다를 수 있다. 개발 코드 측면에서는 코드 변경 없이 실행 내..