[Java] 함수형 프로그래밍

쓰옹·2022년 12월 1일
0

📙 Java 잡아🤏

목록 보기
17/25
post-thumbnail

함수형 프로그래밍(Functional Programming; FP)

  • 함수 구현과 호출만으로 프로그래밍하는 방식
  • 순수함수(pure function)를 구현, 호출 → 외부 자료에 부수적 영향(side effect)주지 않도록 구현
    • 순수함수 = 매개변수만을 사용하여 만드는 함수
    • 함수 내부에서 함수 외부에 있는 변수를 사용하지 않아 함수 수행 시 외부에 영향을 주지 않음
  • 병렬처리에 적합, 안정되고 확장성 있는 프로그램 개발 가능

함수형 인터페이스

  • 인터페이스에 람다식으로 구현할 메서드 선언
  • 추상메서드를 하나만 가지고 있는 인터페이스
  • 두 개 이상 메서드를 가지면 안됨. 오직 하나
  • @FunctionalInterface 애노테이션을 선언하면 컴파일 시점에 추상메서드를 하나만 갖는지 체크해줌. 하나 이상이면 오류남

람다표현식(Lambda expression)

  • 메소드를 하나의 식으로 표현
  • 익명객체
    • 프로그램에서 일시적으로 한번만 사용되고 버려지는 객체
    • 재사용 되지 않음(매개변수) ->{실행문;}
       int add(int x, int y){
       	return x + y
       }
       
       //람다식으로 표현하면
       (int x, inty) -> {retrun x + y;}
      //함수형 인터페이스 선언하기
      @FunctionalInterface
      public interface I2{
      	int getMAX(int num1, int num2); //추상메서드 선언
      }
      
      public class TestI2 {
      	public static void main(String[] args){
      		I2 max = (x, y) -> (x >= y)? x : y;     //람다식을 인터페이스형 max 변수에 대입
      		System.out.println(max.getMAX(10, 20)); //인터페이스형 변수로 메서드 호출
      	}
      }
  • 메서드 레퍼런스
    - 람다표현식을 더 간단하게 표현하는 방법
    - 특정 메서드만을 호출하는 람다의 축약 표현
profile
기록하자기록해!

0개의 댓글