[IT국비지원] 개발자 교육 19일 차 : JAVA(2023.08.22)fit.구디아카데미,김지훈 강사님

Nicole Gold·2023년 8월 21일
0

K-digital training

목록 보기
20/60

이하 구디아카데미 김지훈 강사님의 수업자료와 강의 내용 정리, 실습한 내용을 정리함!

index, controller, Character, Attack, Defense 코드 리뷰 후 정리 예정



Anonymous Instance

  • Interface 는 익명 객체를 활용할 수 있다.
  • 익명(Anonymous) 객체는 말 그대로 이름이 없는 객체이다.
  • ex : CommonImpl impl = new CommonImpl();
    //이 객체를 만들 클래스명은 CommonImpl
  • Interface 는 객체화가 되지 않기 때문에 익명객체를 활용한다.

예시

  • implements 에서 Defense 제거
  • character 를 객체화했을 때 Defense 가 빠져 있으므로 익명 객체로 불러옴

요약

  • Interface 는 복수 개의 구현이 가능하다.
  • Interface 를 구현한 클래스는 해당 인터페이스 형태에 들어갈 수 있다.
  • Interface 를 구현받는 즉석 객체를 만들 수 있다.
  • 이 객체는 즉석에서 만들어져서 이름이 없다.
  • 그래서 이것을 익명(anonymous) 객체라고 부른다.



Interface 상속

  • Interface 도 상속이 가능하다.
  • class 와 차이점은 다중 상속이 가능하다는 점이다.

예시



  • Action 에 Attack 과 Defense 상속
  • Action 만 구현받았지만 Action 이 상속받은 다른 interface 의 추상 메서드도 같이 오버라이드 된다.

요약

  • Class 와 다르게 interface 는 모듈 구조를 갖는다.
  • 그렇기 때문에 복수개의 interface 를 구현 및 상속이 가능하다.



추상화의 장점

  • 응집도가 높으면 좋고 결합도가 높으면 좋지 않음

예시

  • 추상화 전

  • 기본 빙수에서 중복되는 부분의 코드를 반복해야 함

  • 추상화 후

  • 공통으로 들어가는 추상클래스 만들고

  • 추상 메서드 설정 > Vingsu 상속 > 코드 중복 피함



요약

  • Interface 를 사용하면 결합도를 낮출 수 있다.
  • 규격이 있다면 서로 다른 것들끼리 충돌 없이 사용할 수 있기 때문이다.



다형성(Polymorphism)

  • Polymorphism은 OOP 의 주요 특징 중 하나 이다.
  • Polymorphism 은 같은 부모를 상속받은 class 는 같은 Type 으로 들어갈 수 있다는 뜻이다.


다형성의 유용성

예시1

  • 클래스 객체 선언 반복
  • if 문 반복

StandardModel model = null - SrandardModel 을 상속받은 객체들은 모두 이 형태에 들어갈 수 있다.

  • model 변수에 각 클래스 객체화(부모가 같기 때문에 부모 변수에 모두 객체화 가능)
  • 반복되는 if 문은 변수 통일 후 생략

예시2

  • Vingsu 부모 클래스를 상속받은 객체를 모두 vin 에 대입 후 공통되는 메서드를 삭제

복잡한 것을 간단하게 만드는 것이 어느 영역에서나 중요한 것.

profile
JAVA 개발자로 가는 길

0개의 댓글

관련 채용 정보