ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 12일 차 인터페이스를 이용하여 로봇조립
    삼성SDS_멀티캠퍼스/Java 2015. 9. 22. 10:54
    반응형

    어택 구현


    -----------------------------------------------------------------------------------------

    public interface Attack {


    public void attack();

    }



    public class MissileAttack implements Attack {


    @Override

    public void attack() {

    // TODO Auto-generated method stub

    System.out.println("미사일로 공격");

    }


    }


    public class PushAttack implements Attack{

    @Override
    public void attack() {
    // TODO Auto-generated method stub
    System.out.println("펀치로 공격");
    }

    }





    -----------------------------------------------------------------------------------------











    무브 구현



    -----------------------------------------------------------------------------------------

    public interface Move {

    public void move();
    }

    public class WalkingMove implements Move{

    @Override
    public void move() {
    // TODO Auto-generated method stub
    System.out.println("걸어서 이동");
    }

    }

    public class FlyingMove implements Move{

    @Override
    public void move() {
    // TODO Auto-generated method stub
    System.out.println("날아서 이동");
    }

    }





    -----------------------------------------------------------------------------------------







    로봇 구현


    -----------------------------------------------------------------------------------------


    abstract class Robot {

    protected String name;
    protected Attack attack;
    protected Move move;
    public abstract void attack();

    public abstract void move();

    public Robot(String name) {
    this.name = name;
    }

    public String getName() {
    return name;
    }

    public void setName(String name) {
    this.name = name;
    }

    @Override
    public String toString() {
    return "Robot [name=" + name + "]";
    }

    }




    -----------------------------------------------------------------------------------------








    로봇들 구현


    -----------------------------------------------------------------------------------------




    public class Mazinga extends Robot {

    public Mazinga(String name) {
    super(name);
    System.out.println(name);
    attack = new PushAttack();
    move = new FlyingMove();

    }

    @Override
    public void attack() {
    // TODO Auto-generated method stub
    attack.attack();
    }

    @Override
    public void move() {
    // TODO Auto-generated method stub
    move.move();
    }

    }


    public class Lazenca extends Robot {


    public Lazenca(String name) {
    super(name);
    System.out.println(name);
    attack = new MissileAttack();
    move = new FlyingMove();
    }

    @Override
    public void attack() {
    // TODO Auto-generated method stub
    attack.attack();
    }

    @Override
    public void move() {
    // TODO Auto-generated method stub
    move.move();
    }

    }

    public class TaekwonV extends Robot {

    public TaekwonV(String name) {
    super(name);
    System.out.println(name);
    attack = new MissileAttack();
    move = new WalkingMove();
    }

    @Override
    public void attack() {
    // TODO Auto-generated method stub
    attack.attack();
    }

    @Override
    public void move() {
    // TODO Auto-generated method stub
    move.move();
    }

    }






    -----------------------------------------------------------------------------------------









    출력


    -----------------------------------------------------------------------------------------


    public class Test {

    public static void main(String[] args) {

    Attack ma = new MissileAttack();
    Attack pa = new PushAttack();
    Move fm = new FlyingMove();
    Move wm = new WalkingMove();
    Robot mazin = new Mazinga("마징가");
    mazin.setAttack(pa);
    mazin.setMove(fm);
    mazin.attack();
    mazin.move();
    System.out.println();
    Robot taek = new TaekwonV("태권V");
    taek.setAttack(ma);
    taek.setMove(wm);
    taek.attack();
    taek.move();
    System.out.println();
    Robot lazen = new Lazenca("라젠카");
    lazen.setAttack(ma);
    lazen.setMove(fm);
    lazen.attack();
    lazen.move();
    }

    }













    반응형
Designed by Tistory.