[ KOSTA 교육 21일차 ] 추상클래스와 인터페이스, 다형성 복습 | 컬렉션 프레임워크

junjun·2024년 5월 14일

KOSTA

목록 보기
18/48

Abstract를 왜 사용하는가?

  • 구조적 : 다른 클래스들이 Pclass의 [자손으로 관리]가 되어질 필요가 있는 경우
  • 기능적 : 다른 클래스들이 Pclass에서 제공되는
    normalMethod() 공통 기능을 사용하고,
    일부 메서드

abstract

  • 인스턴스를 못 만드는 추상
  • ~이고, 이걸 위해 쓴다. 라는 형식으로 쓸 수 있어야 한다.

abstract 클래스는 왜 사용하나

  • 공통 기능을 제공하며, 각자가 구현해야할 메서드가 필요할 때 사용합니다.

인터페이스를 쓰는 이유

  • 공통의 메서드를 모아놓고, 부모가 되려는 목적으로 사용합니다.
  • 관계없는 클래스를 연결해서 구조적으로 관리가 용이하고, 유지보수가 편리하며,
    확장 용어

컬렉션 프레임워크

  • 장점 : 정해진 크기 없이, 여러 개의 데이터를 저장 가능함.

  • 다른 타입도 넣을 수 있다. ( 떼거지로 넣을 수 있다. 다양하게 담을 수 있다 )

  • 다양한 타입을 한번에 담을 수 있다.

  • java.util.Collection

컬렉션 프레임워크란 무엇인가요?

  • 여러 데이터들을 편리하게 다룰 수 있는
    자료구조의 모음을 제공하는 프레임워크입니다.

직렬화는? ( Serialization )

  • 바이트로 만드는 것입니다. ( 객체를 바이트로! )

역직렬화는? ( De-Serialization )

  • 바이트를 다시 객체로 만드는 것입니다.

Java API Docs 보기

  • 이제 블로그를 보기 보다는, API Docs를 본다.
  • Docs는 원서를 보자!

컬렉션 프레임워크는 제네릭과 함께 사용하던 것이 아니었다.

  • 컬렉션 프레임워크는 원래, Object 타입을 다 담을 수 있기에
    모든 타입을 담을 수 있었다.

Map<K,V>

  • List, Set, Map
    • Map : { key1=val1, key2=val2, key3=val3 } 와 같이 표시한다.
      • REST 서비스 JSON(JavaScript Object Notation)
        • Map과 JSON이 비슷하지만, 중간에 **:** ← 요 부분때문에 좀 그렇다.
        • Spring에는 JSON Parser
    • Python, Django / Flask는 JSON을 받으면 내부적으로 알아서 dict로 바꿔줌.

큰 놈에서 작은 놈으로 올 때 ⇒ 다운캐스팅

업캐스팅 ( 자식 → 부모, ,

다운캐스팅 (부모→자식, 강제 형변환 해줘야함 )

자식 → 부모에게 간다 ( = 빈 손으로 감 ) [ 낮은 애가 높은 애를 찾아간다 ]

부모 → 자식에게 간다. ( = 다운 캐스팅 하고 감 )

부모가 나에게 찾아올 때는 뭔가를 바리바리 싸들고 온다..
나에게 잘 맞는 것으로 들고 온다.
내 타입으로 들고 온다..

제네릭

  • 클래스, 메서드 등에서 사용할 데이터 타입을 컴파일 시
    미리 지정하는 방법
  • 컴파일 시 미리 사전 타입 체크
  • 왜 쓰는가?
    • 타입의 안정성
    • 코드의 가독성이 좋아진다.
    • 런타임에 캐스팅 작업을 할 필요가 없어, 오버헤드가 줄어든다. ( 성능 향상을 기대할 수 있다. )

특정 인스턴스의 타입이 궁금할 때?

  • **instanceof** 를 통해 클래스와 비교 가능
  • **getClass()** 메소드를 호출하여 해당 인스턴스의 클래스 객체를 통해 이름을 알 수 있다.

면접 질문 답변 템플릿

  • 정의를 이야기하고, 왜 쓰는지 이야기한다.
  • 배열은 같은 타입의 데이터를 가리키는 변수입니다.
    같은 타입의 변수를 여러개 다루는 것이 불편하여,

이론

  • 정의와 왜 쓰는지
  • 문법

실습

  • 코테 ( 알고리즘 )
  • 프로세스 ( 처리 )

[ 컬렉션 프레임워크와 DB의 Entity의 진화 ] ★★★

0개의 댓글