[리뷰] 처음 해보는 자바 프로그래밍 - 14. 람다식

내용 정리

14.1 람다식 이전 프로그램 구현 방식

명령형 스타일, 서술형 스타일, 함수형 스타일(서술형+객체개념)

14.2 인터페이스 구현 방법(명령형 스타일)

interface myIf { 
	public void print(); 
} 

14.2.1 방법1 : implements 키워드로 클래스 선언

class MyClass implements MyIf {
    @Override
    public void print(){...}
}

MyClass mc = new MyClass();
mc.print();

14.2.2 방법2 : 익명 클래스 사용

MyIf mi = new MyIf() {
    @Override
    public void print() { ... }
}

mi.print();

14.2.3 방법3 : 선언, 생성, 호출을 한번에 처리

(new MyIf(){
    @Override
    public void print() { ... }
).print();

14.3 람다식 사용하기

14.3.1 람다식 기본

//일반 인터페이스 구현
public static MyIf getMyIf() {
    return new MyIf() {
        @Override
        public void print() { System.out... }
    }
}
MyIf mi = getMyIf();
mi.print();

//람다식
MyIf mi = () -> System.out...
mi.print();
  • 함수형 인터페이스 : 하나의 메서드만 선언된 인터페이스
  • 람다식은 함수형 인터페이스만 가능

14.3.2 람다식 활용

14.3.3 메서드 참조

람다식 본문 로직이 복잡할 때, 메서드 형태로 구현하는것도 가능 (JDK 8부터)
MyInterface if =

  • 클래스명::메서드명 [static 메서드]
  • 참조변수명::메서드명
  • 클래스/참조변수명::<타입 매개변수>메서드명 [제너릭 메서드]
  • 클래스::new [생성자]
    생성자가 여러개라면 interface의 단일함수와 매개변수 타입/숫자가 같은 생성자
  • 클래스<타입 매개변수>::new [제너릭 클래스 생성자]

14.3.4 함수형 인터페이스 API

기본적인 함수형 인터페이스는 java.util.function에서 제공

학습 후기

인터페이스 구현 방식을 차례대로 정리하고, 여기서 람다식이 어떻게 발전했는지 학습하고, 다양한 모습의 람다식을 배웠다. 흐름에 맞춰서 진행되니 하나의 스토리를 듣는것처럼 재밌었고, 마지막에 복잡한 코드들도 이해할 수 있었다. 작가님은....정말 글을 많이 쓰셨으면 좋겠다 너무 좋다.
그런데 뒤쪽으로 가면 확실히 복잡한 코드들이 나오는데, 이런걸 실제로 비지니스에 사용중인 사이트들이 있는지 궁금하다. 우리만...안쓰는건가??

profile
개발 공부중!

0개의 댓글