Buenas noches,
Adjunto el ejercicio CU00915C del tutorial de programación Java avanzado.
Gracias
public class AvesEnZoo {
public int numeroAves, numeroMachos, numeroHembras;
public String tipoDeAve;
public AvesEnZoo( String tipoDeAve, int numeroAves, int numeroMachos, int numeroHembras ){
this.numeroAves = numeroAves;
this.numeroMachos = numeroMachos;
this.numeroHembras = numeroHembras;
this.tipoDeAve = tipoDeAve;
}
public void setTipoDeAve(String tipoDeAve) {this.tipoDeAve = tipoDeAve;}
public void setnumeroAves(int numeroAves) {this.numeroAves = numeroAves;}
public void setnumeroMachos(int numeroMachos) {this.numeroMachos = numeroMachos;}
public void setnumeroHembras(int numeroHembras) {this.numeroHembras = numeroHembras;}
public String getTipoDeAve() {return tipoDeAve;}
public int getnumeroAves() {return numeroAves;}
public int getnumeroMachos() {return numeroMachos;}
public int getnumeroHembras() {return numeroHembras;}
@Override
public String toString(){
return tipoDeAve+" "+numeroAves+" "+numeroMachos+" "+numeroHembras;
}
}
import java.util.Iterator;
/**
*
* @author ITCO1724
*/
public class GruposDeAvesZoos implements Iterable<AvesEnZoo> {
public AvesEnZoo[] gruposDeAves; // Atributo de la clase GrupoDeAvesZoos en base al cual se realiza la iteración.
public GruposDeAvesZoos (AvesEnZoo [] p) { // Constructor de la clase, conjuntoAves y que este atributo es un array de Aves.
gruposDeAves= p;
}
public Iterator<AvesEnZoo> iterator() {
Iterator it = new IteratorAvesEnZoo();
return it;
}
protected class IteratorAvesEnZoo implements Iterator<AvesEnZoo> {
protected int posicionarray;
public IteratorAvesEnZoo() {
posicionarray = 0;
}
/*Un método hasNext() que devuelve un tipo booleano,comprobamos si nuestro índice posicionarray
*ha llegado al final de la colección verificando si su valor ha alcanzado el número máximo de elementos *
* posible
*/
public boolean hasNext() {
boolean result;
if (posicionarray < gruposDeAves.length) {
result = true; }
else {
result = false;
}
return result;
}
/*Un método next() que devuelve el siguiente elemento dentro de la colección*/
public AvesEnZoo next() {
posicionarray++;
return gruposDeAves[posicionarray-1];
}
/*Este último no lo hemos implementado por simplicidad del ejemplo y
* el código throw new UnsupportedOperationException("No soportado.");
* que lo implementa simplemente nos permite salir del paso, ya que no podemos dejar el
* método sin sobreescribir al ser obligatorio.*/
public void remove(){
throw new UnsupportedOperationException("No soportado.");
}
}
}
import java.util.Iterator;
/**
*
* @author ITCO1724
*/
public class Programa {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
//objetos de la clase AvesEnZoo
AvesEnZoo az1 = new AvesEnZoo("Aguilas",35,10,25);
AvesEnZoo az2 = new AvesEnZoo("Buitres",100,55,45);
AvesEnZoo az3 = new AvesEnZoo("Halcones",80,25,55);
AvesEnZoo[] pp = {az1,az2,az3};
GruposDeAvesZoos cp = new GruposDeAvesZoos(pp);
Iterator<AvesEnZoo> it1=cp.iterator();
System.out.println("TIPO"+"\t"+"TOTAL"+"\t"+"MACHOS"+"\t"+"HEMBRAS"+"\n");
while(it1.hasNext()){
AvesEnZoo tmp=it1.next();
System.out.println(tmp.toString());
}
}
}