더 많이 실패하기

코딩공부 57일차: 자바의 정석 / 자바의 정석 86~90강 본문

자바/자바의정석

코딩공부 57일차: 자바의 정석 / 자바의 정석 86~90강

김발자~ 2022. 9. 25. 22:54
반응형

개발 공부 57일차

자바의 정석 기초편 강의

https://www.youtube.com/watch?v=oJlCC1DutbA&list=PLW2UjW795-f6xWA2_MUhEVgPauhGl3xIp 

 

 

총 171개의 강의로 구성되어 있다

총 강의 시간은 80시간 정도

 

 

강의는 기초편을 기준으로 제작되어 있지만,

http://www.yes24.com/Product/Goods/24259565

 

Java의 정석 - YES24

최근 7년동안 자바 분야의 베스트 셀러 1위를 지켜온 `자바의 정석`의 최신판. 저자가 카페에서 12년간 직접 독자들에게 답변을 해오면서 초보자가 어려워하는 부분을 잘 파악하고 쓴 책. 뿐만 아

www.yes24.com

링크로 첨부한 자바의 정석 3판으로도 무리가 없다는 댓글이 있어 그대로 진행

 

 

 

 

 


ch 7 - 31, 32 추상 클래스, 추상 메서드

(3판 기준 375, 376쪽)

https://www.youtube.com/watch?v=EnBLkMYt1XQ&list=PLW2UjW795-f6xWA2_MUhEVgPauhGl3xIp&index=86 


 

추상 클래스(abstract class)
미완성 설계도, 미완성 메서드를 갖고 있는 클래스
다른 클래스 작성에 도움을 주기 위한 것이며 인스턴스 생성 불가
상속을 통해 추상 메서드를 완성(구현)해야 인스턴스 생성 가능

추상 클래스도 생성자가 있어야 한다


추상 메서드(abstract method)
미완성 메서드, 구현부(몸통, { })가 없는 메서드
abstract 리턴타입 메서드이름();
꼭 필요하지만 자손마다 다르게 구현될 것으로 예상되는 경우 사용
추상 메서드의 멤버 수만큼 자손 클래스에서 메서드를 모두 구현해야 abstract를 뗄 수 있다

 

 

 


ch 7 - 33, 34 추상 클래스의 작성 1

(3판 기준 377~380쪽)

https://www.youtube.com/watch?v=EnBLkMYt1XQ&list=PLW2UjW795-f6xWA2_MUhEVgPauhGl3xIp&index=87 


 

추상클래스의 작성
여러 클래스에 공통적으로 사용될 수 있는 추상클래스를 바로 작성하거나
기존 클래스의 공통 부분을 뽑아서 만든다

379쪽 해병 예제

 

 

 


ch 7 - 33, 34 추상 클래스의 작성 2

(3판 기준 377~380쪽)

https://www.youtube.com/watch?v=EnBLkMYt1XQ&list=PLW2UjW795-f6xWA2_MUhEVgPauhGl3xIp&index=88 


 

추상클래스의 작성
추상클래스를 이용해 설계도를 쉽게 완성하고 관리, 수정 등이 쉬워진다
추상클래스를 의미있는 단계별로 만들어놓으면 중간 단계를 선택해 자손 클래스를 통해 완성할 수 있다

추상화 ↔ 구체화
추상화된 코드는 구체화된 코드보다 유연하다 - 변경에 유리

 

 

 


ch 7 - 35~37 인터페이스의 선언, 상속, 구현

(3판 기준 381~387쪽)

https://www.youtube.com/watch?v=EnBLkMYt1XQ&list=PLW2UjW795-f6xWA2_MUhEVgPauhGl3xIp&index=89 


 

인터페이스
추상 메서드의 집합
구현된 것이 전혀 없는 설계도. 껍데기(모든 멤버가 public)

추상클래스와의 차이점: 
추상 클래스는 클래스인데 추상 메서드를 가진 것. 
인터페이스는 추상 메서드만 가진다 (인터페이스는 iv를 가질 수 없다)

interface 인터페이스이름{
   public static final 타입 상수이름 = 값;     // 상수
   public abstract 메서드이름(매개변수목록);   // 추상 메서드
}


인터페이스의 상속
인터페이스의 조상은 인터페이스만 가능(Object x)
다중 상속(조상 여러 개)이 가능(추상메서드는 충돌해도 문제 없음)


인터페이스의 구현
인터페이스에 정의된 추상 메서드를 완성하는 것

class 클래스이름 implements 인터페이스이름{
   // 인터페이스에 정의된 추상메서드를 모두 구현해야
}

클래스이름은 인터페이스이름을 구현한다
일부만 구현하는 경우 클래스 앞에 abstract를 붙여야 한다

 

 

 


ch 7 - 38 인터페이스와 다형성

(3판 기준 387~389쪽)

https://www.youtube.com/watch?v=EnBLkMYt1XQ&list=PLW2UjW795-f6xWA2_MUhEVgPauhGl3xIp&index=90 


 

인터페이스는 구현 클래스의 부모
(다중 상속의 문제점은 충돌)
인터페이스 타입 매개변수는 인터페이스 구현한 클래스의 객체만 가능

인터페이스를 메서드의 리턴타입으로 지정할 수도 있다
→ 메서드의 반환 타입이 인터페이스면 메서드에서는 인터페이스를 구현한 객체를 반환해야 하고 이 메서드를 호출하는 쪽에서는 인터페이스 타입을 변수로 한다

→리턴타입이 인터페이스라는 것은 메서드가 해당 인터페이스를 구현한 클래스의 인스턴스를 반환한다는 것
→ 인터페이스의 모든 메서드는 예외없이 public abstract

※다시! 오버라이딩 규칙: 조상보다 접근제어자 범위가 좁으면 안 된다

 

 

 


 

반응형
Comments