Interfaces Java - Exemplo 1
De Aulas
Links relacionados: Programação em Java
NPCInterface
1public interface NPCInterface {
2 public int DIREITA = 0;
3 public int ESQUERDA = 1;
4 public void andar();
5 public void inverter();
6 public int getDirecao();
7 public int getPosicao();
8}
Game
1import java.util.ArrayList;
2import java.util.List;
3
4public class Game {
5 private List<NPCInterface> npcList = new ArrayList<NPCInterface>();
6
7 public void addNPC(NPCInterface npc) {
8 npcList.add(npc);
9 }
10
11 public void executar() {
12 for (int i = 0; i < npcList.size(); i++) {
13 NPCInterface npc = npcList.get(i);
14 npc.andar();
15 if (npc.getDirecao() == NPCInterface.DIREITA) {
16 if (npc.getPosicao() > 100) {
17 npc.inverter();
18 }
19 } else {
20 if (npc.getPosicao() <= 0) {
21 npc.inverter();
22 }
23 }
24 }
25 }
26
27 public String toString() {
28 String out = "";
29 for (int i = 0; i < npcList.size(); i++) {
30 out += npcList.get(i).getPosicao() + ", ";
31 }
32 return out;
33 }
34}
Monstro
1public class Monstro implements NPCInterface {
2 private int posicao;
3 private int direcao;
4
5 @Override
6 public void andar() {
7 if (direcao == NPCInterface.DIREITA) {
8 posicao++;
9 } else {
10 posicao--;
11 }
12 }
13
14 @Override
15 public void inverter() {
16 direcao = (direcao == NPCInterface.DIREITA) ?
17 NPCInterface.ESQUERDA : NPCInterface.DIREITA;
18 }
19
20 @Override
21 public int getDirecao() {
22 return direcao;
23 }
24
25 @Override
26 public int getPosicao() {
27 return posicao;
28 }
29}
Main
1public class Main {
2 public static void main(String[] args) {
3 Game g = new Game();
4
5 Monstro m = new Monstro();
6 g.addNPC(m);
7
8 while (true) {
9 g.executar();
10 System.out.println(g);
11 }
12 }
13}