sP ; 언제나 @funtionalInterface + public interface
3가지 참여자가 있다
- 인터페이스
- 인터페이스를 args로 사용하는 메소드
- 메인단
-
람다는 그냥 arg로 사용되는 익명 구현 객체이며, 그것의 간편한 작성법이다
컴파일 시 람다를 익명 구현 객체로 변환해 컴퓨터가 자각한다
-
메소드에서는 인자 공급만 하고,
Overriding은 나중에, main단에서 사용시 (람다 형식으로) 하는 것
*왜 바로 위인 method단을 건너뛰고, 메인단에서 사용하는 두 단계 위에서 재정의하나?
> 익명 구현 객체이므로
> 그리고 메인은 사실 method를 사용만 하는 역할이므로, 메소드를 static으로 불러오거나. 기껏해야 메소드를 가진 class를 작성하는 것 뿐이다(클래스객체.메소드)
-
abstract method의 x y 인자가 있냐 없냐에 따라 형식이 달라짐 / 그것 기준으로 공부할 것
-
메소드단에서의 x y 인자 공급
- 공급시에 x y 등은 바로 숫자 혹은 “String” 등으로 작성하여 공급한다
- 인자가 없다면 당연히 메소드단에서 공급할 필요 없다
-
메인단에서의 사용
- 메소드(익명구현객체=람다)
-
return이 있는 Lambda
- 인터페이스에서의 abstract method 정의는 똑같이 단순하다
- 다만 메인단에서 container로 메소드의 결과를 받아야 한다
*왜 메소드에서 return이 void이지?
- 리턴할 것을 똑같이 return해도 되지만, plate에 받아서 출력해도 무방
- 출력은 action에서 사용한 것 그대로 나온다. 중요한 것은 calcuable만 재정의하는 것(나머지는 그대로 간다)
- 메소드는 추상 메소드를 그대로 사용할 수도 있고, 여러 줄 사이에 끼워져 넣을수도 있다. 람다가 하는 것은 ‘추상 메소드’ 만 오버라이딩 작업하는 것
- 추상메소드 작업 후의 출력이나, 추상메소드 전의 추상메소드로의 인자 공급은 그대로 유지되어 action을 호출하면 딸려서 실행된다
'학습 기록 > 언어 기본' 카테고리의 다른 글
멀티-스레드 (1) | 2023.12.24 |
---|---|
if는 pipeline or thesis (0) | 2022.12.06 |
공간 influx structure / exit strategy (0) | 2022.12.06 |
while : 회전- 수축 공간 (0) | 2022.12.06 |
for 시행 공간 (0) | 2022.12.06 |