삼성SDS_멀티캠퍼스/Java

12일 차 인터페이스를 이용하여 로봇조립

박성우기 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();
}

}













반응형