mirror of
https://gitlab.com/tutorial-java-rafa-munoz/tutorial-java-2024-25/tutorialjava2024-25.git
synced 2025-11-09 18:03:09 +01:00
feat(ch 5): solved all ex
This commit is contained in:
@@ -13,4 +13,15 @@ abstract class Animal {
|
|||||||
public String getNombre() {
|
public String getNombre() {
|
||||||
return nombre;
|
return nombre;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void setNombre(String nombre) {
|
||||||
|
this.nombre = nombre;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return "Animal [nombre=" + nombre + "]";
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -2,6 +2,9 @@ package tutorialJava.capitulo5.ejercicios.bloque03_clasesYMetodosAbstractos.soni
|
|||||||
|
|
||||||
public class Principal {
|
public class Principal {
|
||||||
public static void main(String[] args) {
|
public static void main(String[] args) {
|
||||||
|
|
||||||
|
int a[] = new int[] {1, 2, 3};
|
||||||
|
|
||||||
// Crear un array de tipo Animal
|
// Crear un array de tipo Animal
|
||||||
Animal[] animales = new Animal[] {
|
Animal[] animales = new Animal[] {
|
||||||
new Perro("Max"),
|
new Perro("Max"),
|
||||||
@@ -12,7 +15,7 @@ public class Principal {
|
|||||||
|
|
||||||
// Llamar al método emitirSonido() para cada animal
|
// Llamar al método emitirSonido() para cada animal
|
||||||
for (Animal animal : animales) {
|
for (Animal animal : animales) {
|
||||||
System.out.println("Animal: " + animal.getClass().getSimpleName());
|
System.out.println("Animal: ");
|
||||||
animal.emitirSonido();
|
animal.emitirSonido();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -20,4 +20,19 @@ abstract class Vehiculo {
|
|||||||
public String getModelo() {
|
public String getModelo() {
|
||||||
return modelo;
|
return modelo;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void setVelocidadActual(int velocidadActual) {
|
||||||
|
this.velocidadActual = velocidadActual;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setModelo(String modelo) {
|
||||||
|
this.modelo = modelo;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return "Vehiculo [velocidadActual=" + velocidadActual + ", modelo=" + modelo + "]";
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -8,7 +8,8 @@ public class Principal {
|
|||||||
Producto p3 = new Producto("Producto C");
|
Producto p3 = new Producto("Producto C");
|
||||||
|
|
||||||
// Verificar el valor del contador
|
// Verificar el valor del contador
|
||||||
System.out.println("Número total de productos creados: " + Producto.obtenerContador());
|
System.out.println("Número total de productos creados: " +
|
||||||
|
Producto.obtenerContador());
|
||||||
|
|
||||||
// Mostrar nombres de los productos
|
// Mostrar nombres de los productos
|
||||||
System.out.println("Productos creados:");
|
System.out.println("Productos creados:");
|
||||||
|
|||||||
143
src/tutorialJava/examenes/examen20241211/Libreria.java
Normal file
143
src/tutorialJava/examenes/examen20241211/Libreria.java
Normal file
@@ -0,0 +1,143 @@
|
|||||||
|
package tutorialJava.examenes.examen20241211;
|
||||||
|
|
||||||
|
import java.util.Iterator;
|
||||||
|
|
||||||
|
import tutorialJava.Utils;
|
||||||
|
|
||||||
|
public class Libreria {
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @param args
|
||||||
|
*/
|
||||||
|
public static void main(String[] args) {
|
||||||
|
Producto productos[] = new Producto[Utils.obtenerNumeroAzar(10, 20)];
|
||||||
|
String codigo, titulo;
|
||||||
|
|
||||||
|
for (int i = 0; i < productos.length; i++) {
|
||||||
|
int azar = Utils.obtenerNumeroAzar(0, 1);
|
||||||
|
|
||||||
|
codigo = "Código";
|
||||||
|
titulo = "Título";
|
||||||
|
|
||||||
|
if (azar == 0) { // Voy a crear un libro
|
||||||
|
productos[i] = new Libro(codigo, titulo,
|
||||||
|
"Autor_" + i, Utils.obtenerNumeroAzar(10, 100));
|
||||||
|
}
|
||||||
|
else { // Voy a crear una revista
|
||||||
|
productos[i] = new Revista(codigo, titulo,
|
||||||
|
Utils.obtenerNumeroAzar(1, 12),
|
||||||
|
Utils.obtenerNumeroAzar(1, 12));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Mostrar los productos creados
|
||||||
|
// muestraProductos(productos);
|
||||||
|
|
||||||
|
// Pido un código a usuario y busco en los productos
|
||||||
|
// String codBuscado = Utils.obtenerCadenaConDescripcion("Dame un código"
|
||||||
|
// + " para buscar ");
|
||||||
|
//
|
||||||
|
// Producto productoEncontrado = localizaProducto(productos, codBuscado);
|
||||||
|
// if (productoEncontrado == null) {
|
||||||
|
// System.out.println("El producto no se encuentra");
|
||||||
|
// }
|
||||||
|
// else {
|
||||||
|
// System.out.print("El producto encontrado es ");
|
||||||
|
// if (productoEncontrado instanceof Libro) {
|
||||||
|
// System.out.println(" un libro");
|
||||||
|
// }
|
||||||
|
// else {
|
||||||
|
// System.out.println(" una revista");
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
|
||||||
|
// Ordeno por más caro los productos y muestro más caro y más barato
|
||||||
|
ordenaBurbuja(productos);
|
||||||
|
muestraProductos(productos);
|
||||||
|
System.out.println("Caro: " + productos[0]);
|
||||||
|
System.out.println("Barato: " + productos[productos.length - 1]);
|
||||||
|
|
||||||
|
// Precio promedio y contador de tipos de productos
|
||||||
|
System.out.println("Precio promedio: " + getPrecioPromedioProductos(productos));
|
||||||
|
|
||||||
|
int contLibros = 0, contRevistas = 0;
|
||||||
|
for (int i = 0; i < productos.length; i++) {
|
||||||
|
if (productos[i] instanceof Libro) contLibros++;
|
||||||
|
else contRevistas++;
|
||||||
|
}
|
||||||
|
System.out.println("Hay " + contLibros + " libros");
|
||||||
|
System.out.println("Hay " + contRevistas + " revistas");
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private static void muestraProductos(Producto[] p) {
|
||||||
|
for (int i = 0; i < p.length; i++) {
|
||||||
|
System.out.println(p[i].toString());
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @param codigo
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
private static Producto localizaProducto(Producto productos[], String codigoBuscado) {
|
||||||
|
for (int i = 0; i < productos.length; i++) {
|
||||||
|
if (productos[i].getCodigo().equalsIgnoreCase(codigoBuscado)) {
|
||||||
|
return productos[i];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @param a
|
||||||
|
*/
|
||||||
|
public static void ordenaBurbuja(Producto a[]) {
|
||||||
|
boolean hayIntercambios = false;
|
||||||
|
do {
|
||||||
|
hayIntercambios = false;
|
||||||
|
for (int i = 0; i < a.length - 1; i++) {
|
||||||
|
if (a[i].getPrecio() < a[i + 1].getPrecio()) {
|
||||||
|
Producto aux = a[i];
|
||||||
|
a[i] = a[i + 1];
|
||||||
|
a[i + 1] = aux;
|
||||||
|
hayIntercambios = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} while (hayIntercambios == true);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @param p
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
private static float getPrecioPromedioProductos(Producto p[]) {
|
||||||
|
float pro = 0;
|
||||||
|
for (int i = 0; i < p.length; i++) {
|
||||||
|
pro += p[i].getPrecio();
|
||||||
|
}
|
||||||
|
return pro / p.length;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
41
src/tutorialJava/examenes/examen20241211/Libro.java
Normal file
41
src/tutorialJava/examenes/examen20241211/Libro.java
Normal file
@@ -0,0 +1,41 @@
|
|||||||
|
package tutorialJava.examenes.examen20241211;
|
||||||
|
|
||||||
|
public class Libro extends Producto {
|
||||||
|
|
||||||
|
private String autor;
|
||||||
|
private int numPaginas;
|
||||||
|
|
||||||
|
public Libro() {
|
||||||
|
}
|
||||||
|
|
||||||
|
public Libro(String codigo, String titulo, String autor,
|
||||||
|
int numPaginas) {
|
||||||
|
super(codigo, titulo);
|
||||||
|
this.autor = autor;
|
||||||
|
this.numPaginas = numPaginas;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getAutor() {
|
||||||
|
return autor;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setAutor(String autor) {
|
||||||
|
this.autor = autor;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getNumPaginas() {
|
||||||
|
return numPaginas;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setNumPaginas(int numPaginas) {
|
||||||
|
this.numPaginas = numPaginas;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return "Libro [autor=" + autor + ", numPaginas=" + numPaginas + ", getCodigo()=" + getCodigo()
|
||||||
|
+ ", getTitulo()=" + getTitulo() + ", getPrecio()=" + getPrecio() + "]";
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
51
src/tutorialJava/examenes/examen20241211/Producto.java
Normal file
51
src/tutorialJava/examenes/examen20241211/Producto.java
Normal file
@@ -0,0 +1,51 @@
|
|||||||
|
package tutorialJava.examenes.examen20241211;
|
||||||
|
|
||||||
|
import tutorialJava.Utils;
|
||||||
|
|
||||||
|
public class Producto {
|
||||||
|
protected String codigo, titulo;
|
||||||
|
protected float precio = Utils.obtenerNumeroAzar(5, 100);
|
||||||
|
private static int CONTADOR = 1;
|
||||||
|
|
||||||
|
public Producto() {
|
||||||
|
super();
|
||||||
|
}
|
||||||
|
|
||||||
|
public Producto(String codigo, String titulo) {
|
||||||
|
super();
|
||||||
|
this.codigo = codigo + "_" + CONTADOR;
|
||||||
|
this.titulo = titulo + "_" + CONTADOR;
|
||||||
|
CONTADOR++;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCodigo() {
|
||||||
|
return codigo;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCodigo(String codigo) {
|
||||||
|
this.codigo = codigo;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getTitulo() {
|
||||||
|
return titulo;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setTitulo(String titulo) {
|
||||||
|
this.titulo = titulo;
|
||||||
|
}
|
||||||
|
|
||||||
|
public float getPrecio() {
|
||||||
|
return precio;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setPrecio(float precio) {
|
||||||
|
this.precio = precio;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return "Producto [codigo=" + codigo + ", titulo=" + titulo + ", precio=" + precio + "]";
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
40
src/tutorialJava/examenes/examen20241211/Revista.java
Normal file
40
src/tutorialJava/examenes/examen20241211/Revista.java
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
package tutorialJava.examenes.examen20241211;
|
||||||
|
|
||||||
|
public class Revista extends Producto {
|
||||||
|
|
||||||
|
private int numEdicion, mesPublicacion;
|
||||||
|
|
||||||
|
public Revista() {
|
||||||
|
}
|
||||||
|
|
||||||
|
public Revista(String codigo, String titulo, int numEdicion,
|
||||||
|
int mesPublicacion) {
|
||||||
|
super(codigo, titulo);
|
||||||
|
this.numEdicion = numEdicion;
|
||||||
|
this.mesPublicacion = mesPublicacion;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getNumEdicion() {
|
||||||
|
return numEdicion;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setNumEdicion(int numEdicion) {
|
||||||
|
this.numEdicion = numEdicion;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getMesPublicacion() {
|
||||||
|
return mesPublicacion;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setMesPublicacion(int mesPublicacion) {
|
||||||
|
this.mesPublicacion = mesPublicacion;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return "Revista [numEdicion=" + numEdicion + ", mesPublicacion=" + mesPublicacion + ", getCodigo()="
|
||||||
|
+ getCodigo() + ", getTitulo()=" + getTitulo() + ", getPrecio()=" + getPrecio() + "]";
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user