Exaamen ip2 soluc
INTRODUCCIÓN A LA PROGRAMACIÓN 2 2009/2010 SOLUCIONES PRIMER CONTROL
1. 2pts: 0,5 constructor, 0,75 añadeCarta y 0,75 iterator
public class ManoImpl implements Mano{ private Vector cartas;public ManoImpl(){ cartas = new Vector(); } public void añadeCarta(Carta c) { if (c == null || getCartas().equals(MAX_CARTAS) || getCartas().contains(c)) throw new IllegalArgumentException("Parámetrono válido"); getCartas().add(c); } public Iterator iterator() { return getCartas().iterator(); } 2. 3pts public class BlackJackIP2 implements Iterable{ private Mano m; public BlackJackIP2 (Mano m){this.m = m; } public Iterator iterator(){ return new IteradorBlackJackIP2 (); } private class IteradorBlackJackIP2 implements Iterator{ private Integer j1, j2; private Iterator itor; private Booleanflag; public IteradorBlackJackIP2(){ itor = m.iterator(); j1 = 0; j2 = 0; flag = true; }//los atributos se pueden inicializar en el constructor o en la declaración public boolean hasNext(){ return (j1 <21 && j2 < 21); } public Carta next(){
Carta res; if (flag){ res = itor.next(); j1 += res.getValor(); flag = !flag; } else{ res = itor.next(); j2 += res.getValor(); flag = !flag; } return res; }public void remove() { } } } 3. 2pts: 0,25 atributos, 0,5 constructor, 0,25 cada 0,5 clone public class CartaImpl2 extends CartaImpl { public static Integer nInstancias = 0; public static IntegerinstMarcadas = 0; private static Carta maxMarcada = null; private Boolean marcada; public CartaImpl2(Integer v, String p, Boolean m) { super(v, p); marcada = m; nInstancias++; if (marcada){ instMarcadas++;if (marcada && (maxMarcada == null || this.compareTo(maxMarcada)>0)) maxMarcada = this; } //también se podría poner if (maxMarcada == null || //this.getValor().compareTo(maxMarcada.getValor()>0) //o// maxMarcadas=Utiles.max(this,maxMarcada) } } public Boolean getMarcada(){ return marcada; } public Integer getInstanciasMarcadas(){ return instMarcadas; } public Integer getNumInstancias(){ return...
Regístrate para leer el documento completo.