ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 15주차 과제: 람다식 #15
    JAVA 기본 2021. 3. 5. 22:16
    728x90

    목표

    자바의 람다식에 대해 학습하세요.

    학습할 것 (필수)

    • 람다식 사용법
    • 함수형 인터페이스
    • Variable Capture
    • 메소드, 생성자 레퍼런스

    람다식

    함수적 프로그래밍 기법

    이점

    1. 대용량 데이터 처리시에 유리

        데이터 포장 객체를 생성후 처리하는것보다 데이터를 바로 처리하는게 속도에 유리

        멀티 코어 cpu에서 데이터를 병렬 처리하고 취합할 때 객체보다는 함수가 유리

    2. 이벤트 지향 프로그래밍(이벤트가 발생하면 핸들러 함수 실행)에 적함

        반복적인 이벤트 처리는 핸들러 객체보다는 핸들러 함수가 적합

    함수 람다식

    int max(int a. int b){

          return a>b?a:b;

    }

    (a, b) -> a > b ? a : b

    람다식 사용법

    반환타입과 이름을 지우고 "->"울 불록{}앞에 추가한다.

    +추가 규칙

    1. 반환값이 있는경우 return문 생락가은(끝에';'안붙임)

    2. 매개변수의 타입이 추론 가능하면 생략가능

     

    주의사항

    1. 매개변수가 하나인 경우, 괄호 생략가능(타입이 없을떄만)

    2. 블록 안의 문장이 하나 뿐일 떄, 관호 {}생략가능(끝에 ';' 안붙임)

    단 하나뿐인 문장이 return문이면 괄호 생략 불가

     

    타겟 타입

       람다식이 대입되는 인터페이스

       익면 구현 객체를 만들 때 사용할 인터페이스이다.

           인터페이스  변수 = 람가식;

            ( 타겟타입 )

    함수형 인터페이스

    단 하나의 추상 메소드만 선언된 인터페이스

     

    함수형 인터페이스를 선언하고 그 인터페이스의 참조변수로 람다식을 참조할 수 있다.

    (단, 함수형 인터페이스의 메소드와 람다식의 매개변수 개수와 반환타입이 일치해야함)

     

    클래스의 멤버사용

    람다식 실행 블럭에서는 클래스의 멤버인 필드와 메소드를 제약없이 사용가능하다.

    람다식 실행 블록내에서는 this는 람다식을 실행한 객체의 참조이다.

    >이름이 같을 때 바깥 객체의 참조를 얻기 위해서는 (클래스명.this)사용

    Variable Capture(로컬 변수 사용)

    람다식에서 외부 변수를 참조하는 것

     

    메소드 참조

      메소드를 참조해서 매개변수의 정보 및 리턴타입을 알아내어 람다식에 불필요한 매개변수를 제거하는것이 목적이다.

      종종 람다식은 기존 메소드를 단순하게 호출만 하는 경우가 있다.

     (left, right) -> Math.max(left, right);

     Math :: max;  ->메소드 참조

     

    생성자 참조

    (a,b) -> {return new 클래스(a, b);) -> 클래스 :: new

    실행부에 객체를 생성라고 리턴만 할 경우 생성자 참조 사용가능

    'JAVA 기본' 카테고리의 다른 글

    자바별찍기  (0) 2021.10.15
    Servlet의 기본구성  (0) 2021.05.02
    14주차 과제: 제네릭 #14  (0) 2021.03.01
    13주차 과제: I/O #13  (0) 2021.02.28
    12주차 과제: 애노테이션 #12  (0) 2021.02.28

    댓글

Designed by Tistory.