용주에서 대상을 향한 프로그래밍을 배우다

17825 단어 Java

1. 목적

  • 대상을 위한 비망록
  • UML 설계 메모
  • 2. 개요


    용주의 세계는 오공, 인조인, 셀, 마인 부우 등 각양각색의 전사들로 구성되어 있다
    이번에는 일반인과 다른 그들에게 중점을 두고 소형 상자의 설계와 설치를 진행할 것이다
    ※ 구체적인 설치에 대해서는 매번

    3.UML 디자인


    UML 그림(클래스)


    총결산

    수정자 액세스(UML 그림)



    4. 설계~설치


    전사의 특징: 전투 기능 → 인터페이스로 처리
    uploading-0

    Fighter.java
    interface Fighter {
        void fight();
    }
    
    전사들은 상술한 기능을 가지고 다음과 같은 특징을 가지고 있다
  • 이름
  • 전투력
  • 체력
  • 기술 습득
  • ...등

  • DragonballWarrior.java
    public class DragonballWarrior implements Fighter {
        private String name;
        private int property;
        private int HP;
    
        @Override
        public void fight() {
        }
    
        public void getSkill() {
        }
    
        public void doSkill() {
        }
    }
    
    오공은 전사의 부반으로 대할 수 있다
    전사의 공통점을 더욱 세밀하게 정리하다
  • 세이아인(일정한 조건하에서 슈퍼세이아인화/달을 보는 것은 원인)
  • 인조(제조 번호/호기 이름)
  • 지구인 무도가
  • 나메크 성인(자기 복구/동화 손상)

  • Saiyan.java
    public class Saiyan extends DragonballWarrior {
        /** [1:normal / 2:monkey / 3:super-saiyan] */
        private int status;
    
        public void changeStatus(Saiyan saiyan) {
            this.status = saiyan.status;
        }
    }
    
    전사들이 싸울 수 있는 천하제일무도회를 설계하고 싶어요.
  • 필드
  • 전사
  • 날씨
  • 천하제일무도회-전사has-a관계고
    초클래스 구조 함수와 목표/설정기 정의

    DragonballWarrior.java
    public class DragonballWarrior implements Fighter {
        private String name;
        private int property;
        private int HP;
    
        /** default constractor */
        DragonballWarrior() {
        }
    
        DragonballWarrior(String name, int property, int HP) {
            this.name = name;
            this.property = property;
            this.HP = HP;
        }
    
        @Override
        public void fight() {
        }
    
        public void getSkill() {
        }
    
        public void doSkill() {
        }
    
        // S - getter,setter
        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    
        public int getProperty() {
            return property;
        }
    
        public void setProperty(int property) {
            this.property = property;
        }
    
        public int getHP() {
            return HP;
        }
    
        public void setHP(int hP) {
            HP = hP;
        }
        // E - getter,setter
    }
    
    Saiyan.java
    public class Saiyan extends DragonballWarrior {
        /** [1:normal / 2:monkey / 3:super-saiyan] */
        private int status = 0;
    
        public Saiyan(String name, int property, int HP) {
            super(name, property, HP);
        }
    
        public void changeStatus(Saiyan saiyan) {
            this.status = saiyan.status;
        }
    
        @Override
        public void doSkill() {
            if (super.getName().equals("Goku")) {
                System.out.println("kamehame-ha");
            }
        }
    
        @Override
        public void fight() {
            if (super.getName().equals("Goku")) {
                System.out.println("ora-Goku!");
            }
        }
    
    Saiyan.java
    public class MartialArtist extends DragonballWarrior {
        public MartialArtist(String name, int property, int HP) {
            super(name, property, HP);
        }
    
        @Override
        public void doSkill() {
            if (super.getName().equals("Kuririn")) {
                System.out.println("kien-zan");
            }
        }
    
        @Override
        public void fight() {
            if (super.getName().equals("Kuririn")) {
                System.out.println("oreha-Kuririn!");
            }
        }
    }
    
    BattleTournament.java
    public class BattleTournament {
        private List<DragonballWarrior> dwlist;
    
        public static void main(String args[]) {
            List<DragonballWarrior> dwlist = new ArrayList<>();
            dwlist.add(new Saiyan("Goku", 50000, 200));
            dwlist.add(new Saiyan("Vegeta", 40000, 250));
            dwlist.add(new MartialArtist("Kuririn", 3000, 80));
            dwlist.add(new MartialArtist("Kamesennin", 3000, 80));
            for (DragonballWarrior dw : dwlist) {
                dw.fight();
                dw.doSkill();
            }
        }
    }
    

    5. 실행 결과


    실행 결과.java
    ora-Goku!
    kamehame-ha
    oreha-Kuririn!
    kien-zan
    
    구토가 많았지만.
    저희가 다태성이 작용하고 있다는 걸 확인했어요.
    다음 날

    6. 끝


    3개월 테스트자 → 기본 디자인은 디자인 모델을 배워야 한다고 생각합니다.
    전체 단원은 단일 클래스로 설계되고 기술은 인터페이스 또는 추상적인 클래스로composition의 관계이다
    이번에는 익명 클래스 → 유니버설 → 람다식과 함수형 인터페이스 → Stream API를 정리하고 싶습니다.

    좋은 웹페이지 즐겨찾기