Foros aprenderaprogramar.com
Aprender a programar => C, C++, C#, Java, Visual Basic, HTML, PHP, CSS, Javascript, Ajax, Joomla, MySql y más => Mensaje iniciado por: Jobemar en 05 de Mayo 2020, 07:09
-
Saludos dejo acá mi código para el ejercicio CU00920C del tutorial de programación Java avanzado con ejercicios resueltos.
Clase Cuadrupedo
import java.util.Random;
public class Cuadrupedo {
public static final String[] animal = {"Leon", "Gato", "Perro", "Elefante"};
private final Random rdm;
private final int id;
private final String tipo;
private static int i = 1;
public Cuadrupedo() {
rdm = new Random();
tipo = animal[rdm.nextInt(animal.length)];
id = i;
i++;
}
public int getId() {
return id;
}
public String getTipo() {
return tipo;
}
@Override
public String toString() {
return "Cuadrupedo -> ID: " + id + " Tipo: " + tipo;
}
}
Clase Main
import java.util.ArrayList;
import java.util.List;
public class Main {
public static void main(String[] args) {
// TODO code application logic here
int cantidadCuadrupedos;
cantidadCuadrupedos = 10000;
List<Cuadrupedo> list = new ArrayList<Cuadrupedo>();
int cantidadAnimales = Cuadrupedo.animal.length;
int[] animalesPorTipo = new int[cantidadAnimales];
for (int i = 0; i < 10000; i++) {
list.add(new Cuadrupedo());
}
int k = 0;
while (k < cantidadCuadrupedos) {
for (Cuadrupedo c : list) {
if (c.getId() % 1000 == 0 && c.getId() > 0) {
System.out.println(c);
}
if (c.getTipo().equals(Cuadrupedo.animal[k])) {
animalesPorTipo[k] += 1;
}
}
k++;
}
System.out.print("Resumen: hay ");
for (int j = 0; j < animalesPorTipo.length; j++) {
if (j == animalesPorTipo.length - 1) {
System.out.print(animalesPorTipo[j] + " " + Cuadrupedo.animal[j] + "s. ");
} else {
System.out.print(animalesPorTipo[j] + " " + Cuadrupedo.animal[j] + "s, ");
}
}
}
}
-
Buenas, para quien revise este código, cumple correctamente con lo que se pedía en el ejercicio y además lo hace de una forma original respecto a los ejemplos del propio curso y respecto a otras soluciones de los foros.
Invito a quien tenga interés a comparar este código con otra solución existente en los foros disponible en https://aprenderaprogramar.com/foros/index.php?topic=6155.0
Es interesante ver cómo se declaran atributos estáticos y/o constantes; la invocación con notación de punto de atributos estáticos; el uso del constructor para crear el tipo de animal de forma aleatoria y el uso de un atributo estático para contar el número de cuadrúpedos creados, etc.
Lo dicho, quien tenga interés que revise el código, porque merece la pena ver las ideas que contiene.
Salu2