life is egg

22.12.01 [JAVA 심화 2] 본문

TIL

22.12.01 [JAVA 심화 2]

삶은계란진재혁 2022. 12. 1. 21:49

인터페이스 vs 추상클래스

https://okky.kr/articles/352436

더보기
  • 추상클래스 
    • 여러개의 가까운 클래스들 사이에 동일한 코드를 나누어서 사용하고 싶을때.
    • 추상클래스를 상속한 클래스들이 많은 공통 메소드들과 필드와 public 보다 다양한 접근 제어자에 의해 사용하고 싶을때.
    • non-static 과 non-final 필드를 선언하고 싶을때.  결과적으로 객체들의 상태를 메소드에서 접근하고 수정 할 수 있게 되겠지.
  • 인터페이스
    • 크게 상관없는 클래스들이 너의 인터페이스를 구현해야 할 필요가 있을때. 예를들어 Comparable and Cloneable
    • 특정 데이터타입의 행위를 특별하게 구현하길 원할때 그러나 누가 그것의 행위를 구현 했는지에 대한 관심은 없을때 
    • 다중 구현상속의 이점을 누려야 할때 

 

업캐스팅

>캐스팅 is 형변환

>>업캐스팅 부모형이 자식인스턴스에 담긴다! 부모는 작고 자식은 크다 ! 그러니까 가능하다 !

>>다운캐스팅도 있는데 업캐스팅이 먼저 선행되어야함 내가 그런상황을 마주할까?

 

모든 클래스는 object 구현중

즉 모든 클래스는 object로 Upcasting가능  ( Object anyClazz = new AnyThing(); )

 

다형성   오버라이딩이 왜 다형성을 ..? 

promotion is 자동형변환

Dynamic Dispatch 이해가 안됨..?  런타임시점에서 오버라이딩된 메소드가 구현이됨 .? 

https://velog.io/@maigumi/Dynamic-Method-Dispatch

이해가 안됨 

 

함수형 인터페이스

 인터페이스 배웠자나 근데 그게 추상메소드 하나만 가지고있는것!

 

람다표현식

메소드(함수)를  하나의 식으로 표현 해버린것~! 

난 어렵다 그래도 연습한다!

 

 

메소드 레퍼런스

>있는거 가져다 쓰세여  ..

 

HOF

>Higher-Order-Function  뭔가 함수형 프로그램에서 많이 쓰이는 말인가보다

>인자로 값을 받고 결과를 리턴 해주는것?

 

 

스트림

call back? hell ?   for 안에 for있거나 if있고 안에 if있고 걍 인터스텔라처럼 계속 안으로 들어가는건가?

>>개선하기 위해 나온것..

스트림은 원본데이터를 변경하지 않는다... 가져다가 쓰기만 하나보군여

  재사용 불가능...

파이프라인으로 설명한다..!   ..순서가 중요 .. 0~N의 중개연산(stream을 리턴) + 1개의 종료연산구성

 >> 파이프라인... 그니까 왼쪽에서 오른쪽으로 순차적으로 진행된다는 말같은데...?

 

 

옵셔널 

메소드의 반환 타입으로만 사용해야함..! 매우 제한적 사용!

옵셔널은 wrapper class

 

연습해보기 !

 

 

 

 

 

 

 

Comments