수강한 클립명
템플릿 메서드 활용하기
코딩해 보세요
인터페이스란
인터페이스를 활용한 다형성 구현 - 1
인터페이스를 활용한 다형성 구현 - 2
파트너스 활동을 통해 일정액의 수수료를 제공받을 수 있음
코딩 비전공자라 학원에서 자바(코딩수업)수업을 수료했지만 실력부족을 느껴 기초부터 다시 해보자라는 생각과 웹개발의 전체적인 방법을 알아보고 싶어 주위에서 괜찮다고 했던 패스트캠퍼스 java/spring 웹 개발 마스터 를 수강하게 되었다.
완강을 하여 나만의 웹페이지를 만들고 이 미션수행을 통과해 환급을 받는게 올해 목표이다.
미션 일정
방법
템플릿 메서드 활용하기
Player가 있고 이 Player가 게임을 합니다. 게임에서 Player가 가지는 레벨에 따라 run(),jump().turn() 세가지 기능을 할 수 있습니다.
각 레벨에 따라 기능가능 여부가 다음과 같습니다.
초보자 레벨 : 천천히 달립니다. (run() 가능)
중급자 레벨 : 빠르게 달리고 (run()가능), 점프(jump()가능) 할 수 있습니다.
고급자 레벨 : 빠르게 달리고 (run()가능), 점프(jump()가능) 하고 한 바퀴 돌 수 있습니다 (turn() 가능)
플레이어는 go() 명령어를 받으면 이 세가지 기능을 수행합니다.
이중 할 수 없는 것은 할 수 없다는 메시지를 보냅니다.
코딩해 보세요(8장)
자동차 주행 과정 구현하기
Car 추상 클래스를 상속받은 Sonata, Avante, Grandeur, Genesis 클래스가 있습니다.
각 차는 주행하기 위해 다음 메서드의 순서로 움직입니다.
run()메서드를 템플릿 메서드로 구현하고 CarTest 클래스를 참고하여 프로그램을 완성하세요
인터페이스란
인터페이스 사용요소
- 추상메서드
- 상수
- 디폴트 메서드
- 정적 메서드
- private 메서드
구현방법
public interface Calc{
double PI = 3.14;
int ERROR = -99999999;
int add (int num1, int num2);
int substract (int num1, int num2);
int times (int num1, int num2);
int divide (int num1, int num2);
}
> 인터페이스에서 선언한 변수는 컴파일 과정에서 상수로 변환됨
> 인터페이스에서 선언한 메서드는 컴파일 과정에서 추상메서드로 변환됨
--
타입 상속과 형 변환
Calc calc = new CompleteCalc();
인터페이스를 구현한 클래스는 인터페이스 타입으로 변수를 선언하여 인스턴스를 생성 할 수 있음
인터페이스는 구현 코드가 없기 때문에 타입 상속이라고도 함
인터페이스를 활용한 다형성 구현 - 1
> 주로 설계할때 사용함 (중요)
인터페이스의 역할은?
> 인터페이스는 클라이언트 프로그램에 어떤 메서드를 제공하는지 알려주는
명세(specification) 또는 약속 (이렇게 구현을 해라!! 이런느낌임)
> 한 객체가 어떤 인터페이스의 타입이라 함은 그 인터페이스의 메서드를 구현했다는 의미
> 클라이언트 프로그램은 실제 구현내용을 몰라도 인터페이스의 정의만 알면 그 객체를 사용할 수 있음
인터페이스를 구현해 놓은 다양한 객체를 사용함 - 다형성
:JDBC를 구현한 오라클, MSSQL 라이브러리등
>>추상 클래스랑 인터페이스랑 차이점??
추상 클래스는 공통되는 모듈이 있을수도 있고 없을수도 있다. 또한 클래스이기떄문에 하나만 상속을 받는다.
but, 인터페이스는 순수하게 명세만 되어있다. 그래서 여러개를 상속받을 수 있다.
인터페이스를 활용한 다형성 구현 - 2
인터페이스와 다형성 구현하기
고객 센터에는 전화 상담을 하는 상담원들이 있습니다. 일단 고객 센터로 전화가 오면 대기열에 저장됩니다.
상담원이 지정되기 전까지 대기 상태가 됩니다. 각 전화가 상담원에게 배분되는 정책은 다음과 같이 여러 방식으로 구현될 수 있습니다.
- 상담원 순서대로 배분하기
- 대기가 짧은 상담원 먼저 배분하기
- 우선순위가 높은(숙련도가 높은) 상담원에게 먼저 배분하기
위와 같은 다양한 정책이 사용되는 경우 interface를 정의하고 다양한 정책을 구현하여 실행하세요
(사진참조)
>>>인터페이스의 역할은 모듈이 해야하는 일을 명세해 놓은것이다!!.
--
인터페이스와 strategy pattern
인터페이스를 활용하면 다양한 정책이나 알고리즘을 프로그램의 큰 수정없이 적용,확장할 수 있음
[패스트캠퍼스 수강후기] Java 웹 개발 마스터 올인원 패키지 Online 17회차 미션 - 자바인강 (0) | 2021.04.12 |
---|---|
[패스트캠퍼스 수강후기] Java 웹 개발 마스터 올인원 패키지 Online 16회차 미션 - 자바인강 (0) | 2021.04.10 |
[패스트캠퍼스 수강후기] Java 웹 개발 마스터 올인원 패키지 Online 14회차 미션 - 자바인강 (0) | 2021.04.02 |
[패스트캠퍼스 수강후기] Java 웹 개발 마스터 올인원 패키지 Online 13회차 미션 - 자바인강 (0) | 2021.03.30 |
[패스트캠퍼스 수강후기] Java 웹 개발 마스터 올인원 패키지 Online 12회차 미션 - 자바인강 (2) | 2021.03.26 |