package com.trifulcas.cartas; public abstract class Carta { private String palo; private int numero; public Carta(String palo, int numero) { this.palo = palo; this.numero = numero; } /** * @return the palo */ public String getPalo() { return palo; } /** * @param palo the palo to set */ public void setPalo(String palo) { this.palo = palo; } /** * @return the numero */ public int getNumero() { return numero; } /** * @param numero the numero to set */ public void setNumero(int numero) { this.numero = numero; } public abstract int getValor(); @Override public String toString() { return numero+" de "+palo; } }
package com.trifulcas.cartas; public class Espanyola extends Carta { public Espanyola(String palo, int numero) { super(palo, numero); } @Override public int getValor() { if (getNumero()>=10) { return 10; } return getNumero(); } }
package com.trifulcas.cartas; public class Francesa extends Carta { public Francesa(String palo, int numero) { super(palo, numero); // TODO Auto-generated constructor stub } @Override public int getValor() { // TODO Auto-generated method stub return getNumero(); } }
package com.trifulcas.cartas; import java.util.ArrayList; import java.util.List; public class Baraja { List<Carta> cartas; public Baraja() { cartas=new ArrayList<>(); } public void addCarta(Carta carta) { cartas.add(carta); } public int totalValor() { int total=0; for(Carta carta:cartas) { total+=carta.getValor(); } return total; } }
package com.trifulcas.cartas; public class TestCartas { public static void main(String[] args) { Carta e=new Francesa("Diamantes",7); System.out.println(e); Carta f=new Espanyola("Bastos",12); System.out.println(f); Baraja b=new Baraja(); b.addCarta(f); b.addCarta(e); System.out.println(b.totalValor()); } }