>> 템플릿 패턴의 문제점
=> 예시는 짧지만 실제로는 꽤긴 몇만줄 짜리 코드이다.
=> 한번 구현해놨던 펀치공격과 걸어서 이동을 사용을 못하고 있다.
=> 각 세부 기능들을 재사용을 못하고 있다.
=> 기능을 재사용하려면, 일단 기능을 분리해내야됨
==> 기능을 구현하는 독립적인 클래스로 구현
=> FlyingMove, WalkingMove, MissileAttack, PunchAttack
세부 기능들을 클래스로 구현
구현한 클래스들을 멤버변수 객체를 만들어서 사용한다.
MissileAttack, PunchAttack 클래스들 attack()메소드 갖고 있는데,
둘이 비슷해보이지만, 서로 다른타입이라
부모클래스로 뽑아내기가 안됨.
=> MissileAttack, PunchAttack의 타입이 다른 객체다
=> 묶어서 한번에 선언하고 싶다.
=> 인터페이스를 사용한다.
펀치어택 미사일 어택 => 원래 상관없는 남이였는데,
둘다 attack메소드를 구현했다는 Attackalbe을 상속받았다는 공통점이 생겼음
==> 하나의 타입으로 묶임
하나의 타입으로 선언, 각 메소드의 모양이 똑같다.
==> 부모 클래스에 공통적으로 만들어 두고 사용하면 된다.
모든 자식들이 attack()메소드에서 멤버변수로 갖고있는
attack객체의 attack()메소드를 호출하는 기능을 구현하는 공통점이 있으니까
부모에서 한방에 정의
따로 재정의 해놨던 attack과 move를 삭제하고 멤버변수로 만들었었던 객체를 생성자에 넣는다.
main
diagram 설치하는 방법
help >> install new software >>
http://www.objectaid.com/update/current 넣고 엔터 next ..
>> 중간에 동의하고, next 하고 finish 하고.. 이클립스 재시작
diagram 만들기
new >> others >> objectAid UML Diagram
>> 클래스들 선택 드래그
패키지
package : 클래스들을 묶은 것
자바 라이브러리도 패키지로 구성.
외부의 클래스를 사용하려면 풀 패키지명으로 접근 or 혹은 import를 해야됨
패키지가 다르면 클래스의 이름이 같을 수 있다.
=> 구분에 유의해야된다.
ex)
이름만 같고 두 개가 다른 애들이다.
해당 클래스의 풀패키지명을 import
or
이름 부를 때마다 풀패키지명을 사용
Wrapper 클래스
Integer.parseInt() => 정수형으로 형변환
Double.parseDouble() => 실수형으로 형변환
String 형에 100원 이런식으로 저장되어 있으면 오류가 난다.
Date 클래스
=> 객체를 만들면 운영체제의 시간이 저장된다.
=> SimpleDateFormat을 사용하면 운영체제 시간의 형식을 바꿔서 출력할 수 있다.
StringTokenizer 클래스
=> 문자열을 분석하여서 토큰으로 분리시켜 주는 기능을 제공
'Java > 자바 기반 웹 개발자 과정 필기' 카테고리의 다른 글
[200318.18일차] 입출력 (0) | 2020.03.18 |
---|---|
[200317.17일차] 예외처리 (0) | 2020.03.17 |
[200316.16일차] (0) | 2020.03.16 |
[200312.14일차] (0) | 2020.03.12 |
[200311.13일차] 상속 (0) | 2020.03.11 |
[200310.12일차] static (정적 변수,클래스변수) && 변수 정리 (0) | 2020.03.10 |
[200309.11일차] Java 11 - 클래스 && 객체 4 + 생성자 (0) | 2020.03.09 |