이하 구디아카데미 김지훈 강사님의 수업자료와 강의 내용 정리, 실습한 내용을 정리함!
interface
-
Interface 는 서로 다른 요소들의 접점을 의미한다.
-
그리고 Interface 는 사용 방법을 정의한다.
-
사용 방법은 곧 규격을 의미한다.
-
Interface 구조

-
Interface 도 추상화 메서드를 통해 공동 작업 시 규격을 잡아주는 역할을 한다.
-
Interface 는 abstract class 와 차이점도 많지만 유사한 부분도 많다.

정적메서드(Static Method): 정적 메소드(static method)는 클래스로 객체를 생성하지 않아도 호출이 가능한 메소드다. 정적 메소드는 해당 메소드가 정의되어 있는 클래스의 이름이나 생성된 객체 통해 호출할 수 있다.
-
index

- 문자열 값을 갖는 action 이라는 이름의 form 생성
- 클래스 선택 : 호출 이름 job인 선택창 생성 - 옵션 : 탱커/딜러/힐러
- 액션 선택 : 호출 이름 action 인 선택창 생성 - 옵션 : 값이 use인 '아이템 사용' / 값이 skill 인 '스킬 사용' / 값이 jump 인 '점프'
- go 함수를 실행하는 전송 버튼 생성
- msg 값 H3 태그 안에 출력
- 함수 go 는 form의 action 속성을 name이 action 인 값으로 변경
- form을 전송함
- StandardInter

- job 을 매개변수로 하는 추상 메서드 skill
- job 을 매개변수로 하는 추상 메서드 useItem
- job 을 매개변수로 하는 추상 메서드 jump
- Tanker

- job 을 매개변수로 하는 메서드 skill 실행 시 "job+ 가 도발하는 기술 사용" 이라고 반환
- job 을 매개변수로 하는 메서드 useItem 실행 시 job+" 가 방어력 증강 아이템 사용" 이라고 반환
- job 을 매개변수로 하는 메서드 jump 실행 시 job+" 가 점프한다." 반환
- Dealer

- job 을 매개변수로 하는 메서드 skill 실행 시 job+" 가 공격하는 기술 사용" 이라고 반환
- job 을 매개변수로 하는 메서드 useItem 실행 시 job+" 가 공격력 증강 아이템 사용" 이라고 반환
- job 을 매개변수로 하는 메서드 jump 실행 시 job+" 가 점프한다." 반환
- Healer

- job 을 매개변수로 하는 메서드 skill 실행 시 job+" 가 치유하는 기술 사용" 이라고 반환
- job 을 매개변수로 하는 메서드 useItem 실행 시 job+" 가 치유력 증강 아이템 사용" 이라고 반환
- job 을 매개변수로 하는 메서드 jump 실행 시 job+" 가 점프한다." 반환
- GameControler


- /use, /skill, /jump 가져옴
- HttpServlet 상속받는 퍼블릭 클래스 GameController
- uri 변수에 담음 getRequestURI를 가져오는 함수 결과를
- ctx 변수에 담음 getContextPath를 가져오는 함수 결과를
- addr 변수에 담음 uri를 ctx의 길이만큼 자른 나머지 값
- job 의 값을 가져와서 job 변수에 담음
- msg 변수 선언
- job 의 값에 따라 변하는 switch 함수
- job 의 값이 탱커일 시 Tanker 클래스 tanker 변수에 객체화
- 만약 addr이 /skill 이면 tanker 의 skill 함수 실행해서 msg에 담음
- 아니면 addr 이 /use 이면 tanker의 useItem 함수 실행해서 msg에 담음
- 그도 아니면 tanker의 jump 메서드 실행해서 msg 에 담음
- 딜러~힐러 반복
- "msg" 속성에 msg 값을 담아서 index.jsp 에 값 보내기
Interface 요약
- Interface 는 특정 기능을 이용하기 위한 접점 역할을 한다.
- Interface 는 객체화가 불가능하다.
- Interface 는 기본적으로는 추상화 메서드를 사용한다.
- Interface 를 통해서도 특정 기능 사용에 대한 규격을 설정할 수 있다.
Interface 다중 구현
-
class 상속은 class 당 하나만 가능하다.
-
interface 는 다중구현(multiple implements) 이 가능하다.

-
일반 공격, 특수 공격이 있는 공격 interface, 막기와 회피가 있는 방어 interface 생성하기

-
index


-
Attack

-
Defense

-
Character

-
GameController


🤦♀️