수강한 클립명
다운 캐스팅과 instanceof
코딩해 보세요
추상클래스란
추상클래스 응용 - 템플릿 메서드
파트너스 활동을 통해 일정액의 수수료를 제공받을 수 있음
코딩 비전공자라 학원에서 자바(코딩수업)수업을 수료했지만 실력부족을 느껴 기초부터 다시 해보자라는 생각과 웹개발의 전체적인 방법을 알아보고 싶어 주위에서 괜찮다고 했던 패스트캠퍼스 java/spring 웹 개발 마스터 를 수강하게 되었다.
완강을 하여 나만의 웹페이지를 만들고 이 미션수행을 통과해 환급을 받는게 올해 목표이다.
미션 일정
방법
다운 캐스팅과 instanceof
- 형변환이 된 상태에서 자신의 상태로 다시 돌아가는것
하위 클래스로 형 변환, 다운캐스팅
묵시적으로 상위 클래스 형변환된 인스턴스가 원래 자료형(하위클래스)으로 변환되어야 할 때 다운캐스팅이라 함.
하위 클래스로의 형 변환은 "명시적"을 되어야 함
Customer vc = new VIPCustomer(); //묵시적
VIPCustomer vCustomer = (VIPCustomer)vc; //명시적
--
instanceof 가 하는일?
앞의 객체가 뒤의 객체타입인가 알아본다. 맞으면 true 틀리면 false를 반환한다. (instanceof 는 true or false를 반환한다.)
코딩해 보세요 - 7장
일반 고객와 VIP 고객의 중간 등급 만들기
고객이 늘어 VIP 고객만큼 물건을 많이 구입하지 않지만, 단골인 분들을 GOLD등급으로 관리하고 싶습니다.
혜택은 다음과 같습니다.
- 제품을 살때는 항상 10%를 할인해 줍니다.
- 보너스 포인트는 2%를 적립해 줍니다.
- 담당 전문 상담원은 없습니다.
Customer 클래스에서 상속을 받아 GoldCustomer를 구현해 보세요.
--
배열을 활용하여 구현하기
고객은 현재 5명 입니다. VIP1명, GOLD 2명, SILVER 2명 일때, 각 고객이 10000원 짜리 제품을 구매한 경우
지불한 금액과 적립된 보너스 포인트를 출력해 보세요
ArrayList를 활용하여 구현해 봅시다.
추상클래스란
추상 메서드를 포함한 클래스
추상 메서드
- 구현 코드가 없이 선언부만 있는 메서드
abstract 예약어 사용
추상 클래스는 new (인스턴스화) 할 수 없음
cf) concrete class
추상메서드는 하위클래스에서 구현이 된다. (단독으로 사용할려고 만드는 클래스가 아니라 하위클래스에서 사용할려고 만드는 것이 추상클래스이다)
- 메서드와 클래스에 abstract키워드 사용
추상 메서드가 포함된 클래스는 추상 클래스로 선언
모든 메서드가 구현되었다고 해도 클래스에 abstract 키워드를 사용하면 추상 클래스
* 추상메서드는 주로 이탤릭체로 표현한다
--
추상 클래스 사용하기
추상 클래스는 주로 상속의 상위클래스로 사용됨
추상 메서드 : 하위 클래스가 구현해야 하는 메서드 ("하위클래스에 구현의 책임을 위임한다" << 이런식으로 표현함)
구현된 메서드 : 하위 클래스가 공통으로 사용하는 기능의 메서드
하위 클래스에 따라 재정의 할 수 있음
추상클래스 응용 - 템플릿 메서드
템플릿 메서드
템플릿 : 틀이나 견본을 의미
템플릿 메서드 : 추상 메서드나 구현된 메서드를 활용하여 전체의 흐름(시나리오)를 정의 해 놓은 메서드 (로직을 정의해 놓은 메서드)
final로 선언하여 재정의 할 수 없게 함
템플릿 메서드 패턴 :
디자인 패턴의 일종
프레임 워크에서 많이 사용되는 설계 패턴
추상 클래스로 선언된 상의 클래스에서 추상 메서드를 이용하여 전체 구현의 흐름을 정의하고
구체적인 각 메서드 구현은 하위 클래스에 위임함
하위 클래스가 다른 구현을 했다고 해서 템플릿 메서드에 정의된 시나리오 대로 수행됨
--
final 예약어
final 변수는 값이 변경될 수 없는 상수임
public static final double PI = 3.14;
오직 한 번만 값을 할 당할 수 있음
final 메서드는 하위 클래스에서 재정의 (overriding)할 수 없음
* final 키워드가 붙어있는 메서드는 하위클래스에서 재정의 하면 안된다.
final 클래스는 더 이상 상속되지 않음 ex) java의 String 클래스
--
public static final 상수 값 정의 하여 사용하기
프로젝트 구현 시 여러 파일에서 공유해야 하는 상수 값은 하나의 파일에 선언하여 사용하면 편리 함 (인스턴스를 따로 부를필요도 없고 메모리를 적게 잡아먹음)
사진 참조 필!!!!
[패스트캠퍼스 수강후기] Java 웹 개발 마스터 올인원 패키지 Online 16회차 미션 - 자바인강 (0) | 2021.04.10 |
---|---|
[패스트캠퍼스 수강후기] Java 웹 개발 마스터 올인원 패키지 Online 15회차 미션 - 자바인강 (0) | 2021.04.07 |
[패스트캠퍼스 수강후기] Java 웹 개발 마스터 올인원 패키지 Online 13회차 미션 - 자바인강 (0) | 2021.03.30 |
[패스트캠퍼스 수강후기] Java 웹 개발 마스터 올인원 패키지 Online 12회차 미션 - 자바인강 (2) | 2021.03.26 |
[패스트캠퍼스 수강후기] Java 웹 개발 마스터 올인원 패키지 Online 11회차 미션 - 자바인강 (0) | 2021.03.22 |