🏫 Open API_JAVA

[50일차] andThen()과 compose() 디폴트 메소드 / 메소드 참조 / 입력 스트림과 출력 스트림

Dorothy_YANG 2022. 10. 5. 09:07
728x90

20221004(화)

  • 목차 
    - andThen()과 compose() 디폴트 메소드
    - 메소드 참조
    - 입력 스트림과 출력 스트림 

< andThen()과 compose() 디폴트 메소드 >

  • 함수적 인터페이스가 갖고 있는 디폴트 메소드
  • 두 개의 함수적 인터페이스를 순차적으로 연결해 실행
  • 첫 번째 리턴값을 두 번째 매개값으로 제공해 최종 결과값 리턴

  • andThen() 디폴트 메소드
    - 인터페이스 AB = 인터페이스A.andThen(인터페이스  B);
    - 최종결과 = 인터페이스 AB.method();
    - A를 쓰고 나서 B를 쓴다.

  • compose() 디폴트 메소드
    - 인터페이스 AB = 인터페이스A.compose(인터페이스 B);
    - 최종결과 = 인터페이스 AB.method();
    - B를 먼저 작동하고 A가 진행된다.

 


< 메소드 참조 >

  • 메소드 참조의 목적
    : 람다식에서 불필요한 매개 변수를 제거하는 것
      (left, right) -> Math.max(left, right) Math :: max;
메소드 참조 (or case 1) (or case 2)
정적 메소드와 인스턴스 메소드 참조 클래스 :: 정적메소드 참조변수 :: 인스턴스메소드
매개 변수의 메소드 참조 (a, b) -> {a.instanceMethod(b);} 클래스 :: instanceMethod
생성자 참조 (a, b) -> {return new 클래스(a, b);} 클래스 :: new

 

  • 매개변수와 리턴타입에 따른 람다식
    - 람다식이란 문법이 없다면 method를 따로 하나 만들고 호출해야 함.
    - 하지만 실행 구문을 다이렉트로 쓰고 싶을 경우 사용.
매개변수 리턴타입 람다식
X X () -> {}
X O () -> {return 값;}
O X 1개 a, 2개 이상(a, b) -> {}
O O a -> {return 값;}

 


< 입력 스트림과 출력 스트림 > : 작업 방향!!

  • 입력
    : 읽기.(읽어들인다.) 들 (입) 入 / 자바 프로그램 안에 내용물이 들어오면 입력!
       (키보드로 데이터 단순입력 X)
  • 출력
    : 쓰기(내보낸다.) 날 (출) 出 / 자바 프로그램 안에서 내용물이 나가면 출력!

  • InputStream : 자바 프로그램에서 외부에 있던 것을 읽어들이는 의미.
  • OutputStream : 자바 프로그램에서 외부로 내보내는 것을 의미.

  • 스트림 클래스 두 종류
구분 바이트 기반 스트림 문자 기반 스트림
그림, 멀티미디어 등의 바이너리 데이터 only 문자 데이터
입력 스트림 출력 스트림 입력 스트림 출력 스트림
최상위 클래스 InputStream OutputStream Reader Writer
하위 클래스
(예)
XXXInputStream
(FileInputStream)
XXXOutputStream
(FileOutputStream)
XXXReader
(FileReader)
XXXWriter
(FileWriter)

* 문자 데이터를 바이트로 바꿀 수 있지만, 편한 작업을 위해 문자 기반 스트림을 따로 구분한다.

  - input, output으로 작업 방향 결정

* 자원(Resource, XXX)의 종류에 따라 스트림이 정해져있다.

728x90