From 461b2dcf09bc4a9bb293154b28031c04e3096ae9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rafa=20Mu=C3=B1oz?= Date: Wed, 11 Dec 2024 22:12:08 +0100 Subject: [PATCH] feat(ch 5): solved blocks 3 & 4 --- .../ArtNoPerecedero.java | 2 +- .../articulosComestibles}/ArtPerecedero.java | 2 +- .../articulosComestibles}/Articulo.java | 2 +- .../articulosComestibles}/Tienda.java | 2 +- .../coleccionAntiguedades}/Antiguedad.java | 2 +- .../coleccionAntiguedades}/Joya.java | 2 +- .../instrumentos/Bateria.java | 12 +++++++ .../instrumentos/Guitarra.java | 12 +++++++ .../instrumentos/Instrumento.java | 12 +++++++ .../instrumentos/Piano.java | 12 +++++++ .../instrumentos/Principal.java | 18 ++++++++++ .../sonidosAnimales/Animal.java | 16 +++++++++ .../sonidosAnimales/Gato.java | 12 +++++++ .../sonidosAnimales/Perro.java | 12 +++++++ .../sonidosAnimales/Principal.java | 19 +++++++++++ .../vehiculos/Bicicleta.java | 19 +++++++++++ .../vehiculos/Coche.java | 19 +++++++++++ .../vehiculos/Principal.java | 22 +++++++++++++ .../vehiculos/Vehiculo.java | 23 +++++++++++++ .../banco/Banco.java | 16 +++++++++ .../banco/Cuenta.java | 24 ++++++++++++++ .../banco/Principal.java | 22 +++++++++++++ .../productos/Principal.java | 19 +++++++++++ .../productos/Producto.java | 22 +++++++++++++ .../usuarios/Principal.java | 25 ++++++++++++++ .../usuarios/Usuario.java | 33 +++++++++++++++++++ 26 files changed, 375 insertions(+), 6 deletions(-) rename src/tutorialJava/capitulo5/ejercicios/{bloque02_articulosComestibles => bloque02/articulosComestibles}/ArtNoPerecedero.java (81%) rename src/tutorialJava/capitulo5/ejercicios/{bloque02_articulosComestibles => bloque02/articulosComestibles}/ArtPerecedero.java (90%) rename src/tutorialJava/capitulo5/ejercicios/{bloque02_articulosComestibles => bloque02/articulosComestibles}/Articulo.java (92%) rename src/tutorialJava/capitulo5/ejercicios/{bloque02_articulosComestibles => bloque02/articulosComestibles}/Tienda.java (95%) rename src/tutorialJava/capitulo5/ejercicios/{bloque02_ColeccionAntiguedades => bloque02/coleccionAntiguedades}/Antiguedad.java (92%) rename src/tutorialJava/capitulo5/ejercicios/{bloque02_ColeccionAntiguedades => bloque02/coleccionAntiguedades}/Joya.java (86%) create mode 100644 src/tutorialJava/capitulo5/ejercicios/bloque03_clasesYMetodosAbstractos/instrumentos/Bateria.java create mode 100644 src/tutorialJava/capitulo5/ejercicios/bloque03_clasesYMetodosAbstractos/instrumentos/Guitarra.java create mode 100644 src/tutorialJava/capitulo5/ejercicios/bloque03_clasesYMetodosAbstractos/instrumentos/Instrumento.java create mode 100644 src/tutorialJava/capitulo5/ejercicios/bloque03_clasesYMetodosAbstractos/instrumentos/Piano.java create mode 100644 src/tutorialJava/capitulo5/ejercicios/bloque03_clasesYMetodosAbstractos/instrumentos/Principal.java create mode 100644 src/tutorialJava/capitulo5/ejercicios/bloque03_clasesYMetodosAbstractos/sonidosAnimales/Animal.java create mode 100644 src/tutorialJava/capitulo5/ejercicios/bloque03_clasesYMetodosAbstractos/sonidosAnimales/Gato.java create mode 100644 src/tutorialJava/capitulo5/ejercicios/bloque03_clasesYMetodosAbstractos/sonidosAnimales/Perro.java create mode 100644 src/tutorialJava/capitulo5/ejercicios/bloque03_clasesYMetodosAbstractos/sonidosAnimales/Principal.java create mode 100644 src/tutorialJava/capitulo5/ejercicios/bloque03_clasesYMetodosAbstractos/vehiculos/Bicicleta.java create mode 100644 src/tutorialJava/capitulo5/ejercicios/bloque03_clasesYMetodosAbstractos/vehiculos/Coche.java create mode 100644 src/tutorialJava/capitulo5/ejercicios/bloque03_clasesYMetodosAbstractos/vehiculos/Principal.java create mode 100644 src/tutorialJava/capitulo5/ejercicios/bloque03_clasesYMetodosAbstractos/vehiculos/Vehiculo.java create mode 100644 src/tutorialJava/capitulo5/ejercicios/bloque04_instanciasVsStatic/banco/Banco.java create mode 100644 src/tutorialJava/capitulo5/ejercicios/bloque04_instanciasVsStatic/banco/Cuenta.java create mode 100644 src/tutorialJava/capitulo5/ejercicios/bloque04_instanciasVsStatic/banco/Principal.java create mode 100644 src/tutorialJava/capitulo5/ejercicios/bloque04_instanciasVsStatic/productos/Principal.java create mode 100644 src/tutorialJava/capitulo5/ejercicios/bloque04_instanciasVsStatic/productos/Producto.java create mode 100644 src/tutorialJava/capitulo5/ejercicios/bloque04_instanciasVsStatic/usuarios/Principal.java create mode 100644 src/tutorialJava/capitulo5/ejercicios/bloque04_instanciasVsStatic/usuarios/Usuario.java diff --git a/src/tutorialJava/capitulo5/ejercicios/bloque02_articulosComestibles/ArtNoPerecedero.java b/src/tutorialJava/capitulo5/ejercicios/bloque02/articulosComestibles/ArtNoPerecedero.java similarity index 81% rename from src/tutorialJava/capitulo5/ejercicios/bloque02_articulosComestibles/ArtNoPerecedero.java rename to src/tutorialJava/capitulo5/ejercicios/bloque02/articulosComestibles/ArtNoPerecedero.java index abdcdb6..2b4d781 100644 --- a/src/tutorialJava/capitulo5/ejercicios/bloque02_articulosComestibles/ArtNoPerecedero.java +++ b/src/tutorialJava/capitulo5/ejercicios/bloque02/articulosComestibles/ArtNoPerecedero.java @@ -1,4 +1,4 @@ -package tutorialJava.capitulo5.ejercicios.bloque02_articulosComestibles; +package tutorialJava.capitulo5.ejercicios.bloque02.articulosComestibles; public class ArtNoPerecedero extends Articulo { diff --git a/src/tutorialJava/capitulo5/ejercicios/bloque02_articulosComestibles/ArtPerecedero.java b/src/tutorialJava/capitulo5/ejercicios/bloque02/articulosComestibles/ArtPerecedero.java similarity index 90% rename from src/tutorialJava/capitulo5/ejercicios/bloque02_articulosComestibles/ArtPerecedero.java rename to src/tutorialJava/capitulo5/ejercicios/bloque02/articulosComestibles/ArtPerecedero.java index a4a9673..a65b24d 100644 --- a/src/tutorialJava/capitulo5/ejercicios/bloque02_articulosComestibles/ArtPerecedero.java +++ b/src/tutorialJava/capitulo5/ejercicios/bloque02/articulosComestibles/ArtPerecedero.java @@ -1,4 +1,4 @@ -package tutorialJava.capitulo5.ejercicios.bloque02_articulosComestibles; +package tutorialJava.capitulo5.ejercicios.bloque02.articulosComestibles; public class ArtPerecedero extends Articulo { diff --git a/src/tutorialJava/capitulo5/ejercicios/bloque02_articulosComestibles/Articulo.java b/src/tutorialJava/capitulo5/ejercicios/bloque02/articulosComestibles/Articulo.java similarity index 92% rename from src/tutorialJava/capitulo5/ejercicios/bloque02_articulosComestibles/Articulo.java rename to src/tutorialJava/capitulo5/ejercicios/bloque02/articulosComestibles/Articulo.java index 4af69e5..f7d4de1 100644 --- a/src/tutorialJava/capitulo5/ejercicios/bloque02_articulosComestibles/Articulo.java +++ b/src/tutorialJava/capitulo5/ejercicios/bloque02/articulosComestibles/Articulo.java @@ -1,4 +1,4 @@ -package tutorialJava.capitulo5.ejercicios.bloque02_articulosComestibles; +package tutorialJava.capitulo5.ejercicios.bloque02.articulosComestibles; public class Articulo { diff --git a/src/tutorialJava/capitulo5/ejercicios/bloque02_articulosComestibles/Tienda.java b/src/tutorialJava/capitulo5/ejercicios/bloque02/articulosComestibles/Tienda.java similarity index 95% rename from src/tutorialJava/capitulo5/ejercicios/bloque02_articulosComestibles/Tienda.java rename to src/tutorialJava/capitulo5/ejercicios/bloque02/articulosComestibles/Tienda.java index 11f987d..09e85a0 100644 --- a/src/tutorialJava/capitulo5/ejercicios/bloque02_articulosComestibles/Tienda.java +++ b/src/tutorialJava/capitulo5/ejercicios/bloque02/articulosComestibles/Tienda.java @@ -1,4 +1,4 @@ -package tutorialJava.capitulo5.ejercicios.bloque02_articulosComestibles; +package tutorialJava.capitulo5.ejercicios.bloque02.articulosComestibles; import tutorialJava.Utils; diff --git a/src/tutorialJava/capitulo5/ejercicios/bloque02_ColeccionAntiguedades/Antiguedad.java b/src/tutorialJava/capitulo5/ejercicios/bloque02/coleccionAntiguedades/Antiguedad.java similarity index 92% rename from src/tutorialJava/capitulo5/ejercicios/bloque02_ColeccionAntiguedades/Antiguedad.java rename to src/tutorialJava/capitulo5/ejercicios/bloque02/coleccionAntiguedades/Antiguedad.java index e4ac98d..ef3cdd8 100644 --- a/src/tutorialJava/capitulo5/ejercicios/bloque02_ColeccionAntiguedades/Antiguedad.java +++ b/src/tutorialJava/capitulo5/ejercicios/bloque02/coleccionAntiguedades/Antiguedad.java @@ -1,4 +1,4 @@ -package tutorialJava.capitulo5.ejercicios.bloque02_ColeccionAntiguedades; +package tutorialJava.capitulo5.ejercicios.bloque02.coleccionAntiguedades; public class Antiguedad { diff --git a/src/tutorialJava/capitulo5/ejercicios/bloque02_ColeccionAntiguedades/Joya.java b/src/tutorialJava/capitulo5/ejercicios/bloque02/coleccionAntiguedades/Joya.java similarity index 86% rename from src/tutorialJava/capitulo5/ejercicios/bloque02_ColeccionAntiguedades/Joya.java rename to src/tutorialJava/capitulo5/ejercicios/bloque02/coleccionAntiguedades/Joya.java index 83875bd..c970d2a 100644 --- a/src/tutorialJava/capitulo5/ejercicios/bloque02_ColeccionAntiguedades/Joya.java +++ b/src/tutorialJava/capitulo5/ejercicios/bloque02/coleccionAntiguedades/Joya.java @@ -1,4 +1,4 @@ -package tutorialJava.capitulo5.ejercicios.bloque02_ColeccionAntiguedades; +package tutorialJava.capitulo5.ejercicios.bloque02.coleccionAntiguedades; public class Joya extends Antiguedad { diff --git a/src/tutorialJava/capitulo5/ejercicios/bloque03_clasesYMetodosAbstractos/instrumentos/Bateria.java b/src/tutorialJava/capitulo5/ejercicios/bloque03_clasesYMetodosAbstractos/instrumentos/Bateria.java new file mode 100644 index 0000000..aa020c4 --- /dev/null +++ b/src/tutorialJava/capitulo5/ejercicios/bloque03_clasesYMetodosAbstractos/instrumentos/Bateria.java @@ -0,0 +1,12 @@ +package tutorialJava.capitulo5.ejercicios.bloque03_clasesYMetodosAbstractos.instrumentos; + +class Bateria extends Instrumento { + public Bateria(String nombre) { + super(nombre); + } + + @Override + public void tocar() { + System.out.println(nombre + " (Batería): Marcando el ritmo con tambores"); + } +} \ No newline at end of file diff --git a/src/tutorialJava/capitulo5/ejercicios/bloque03_clasesYMetodosAbstractos/instrumentos/Guitarra.java b/src/tutorialJava/capitulo5/ejercicios/bloque03_clasesYMetodosAbstractos/instrumentos/Guitarra.java new file mode 100644 index 0000000..7979ebe --- /dev/null +++ b/src/tutorialJava/capitulo5/ejercicios/bloque03_clasesYMetodosAbstractos/instrumentos/Guitarra.java @@ -0,0 +1,12 @@ +package tutorialJava.capitulo5.ejercicios.bloque03_clasesYMetodosAbstractos.instrumentos; + +class Guitarra extends Instrumento { + public Guitarra(String nombre) { + super(nombre); + } + + @Override + public void tocar() { + System.out.println(nombre + " (Guitarra): Tocando acordes de rock"); + } +} \ No newline at end of file diff --git a/src/tutorialJava/capitulo5/ejercicios/bloque03_clasesYMetodosAbstractos/instrumentos/Instrumento.java b/src/tutorialJava/capitulo5/ejercicios/bloque03_clasesYMetodosAbstractos/instrumentos/Instrumento.java new file mode 100644 index 0000000..10dc12d --- /dev/null +++ b/src/tutorialJava/capitulo5/ejercicios/bloque03_clasesYMetodosAbstractos/instrumentos/Instrumento.java @@ -0,0 +1,12 @@ +package tutorialJava.capitulo5.ejercicios.bloque03_clasesYMetodosAbstractos.instrumentos; + +abstract class Instrumento { + protected String nombre; + + public Instrumento(String nombre) { + this.nombre = nombre; + } + + // Método abstracto + public abstract void tocar(); +} \ No newline at end of file diff --git a/src/tutorialJava/capitulo5/ejercicios/bloque03_clasesYMetodosAbstractos/instrumentos/Piano.java b/src/tutorialJava/capitulo5/ejercicios/bloque03_clasesYMetodosAbstractos/instrumentos/Piano.java new file mode 100644 index 0000000..da5912c --- /dev/null +++ b/src/tutorialJava/capitulo5/ejercicios/bloque03_clasesYMetodosAbstractos/instrumentos/Piano.java @@ -0,0 +1,12 @@ +package tutorialJava.capitulo5.ejercicios.bloque03_clasesYMetodosAbstractos.instrumentos; + +class Piano extends Instrumento { + public Piano(String nombre) { + super(nombre); + } + + @Override + public void tocar() { + System.out.println(nombre + " (Piano): Tocando una melodía clásica"); + } +} \ No newline at end of file diff --git a/src/tutorialJava/capitulo5/ejercicios/bloque03_clasesYMetodosAbstractos/instrumentos/Principal.java b/src/tutorialJava/capitulo5/ejercicios/bloque03_clasesYMetodosAbstractos/instrumentos/Principal.java new file mode 100644 index 0000000..0361028 --- /dev/null +++ b/src/tutorialJava/capitulo5/ejercicios/bloque03_clasesYMetodosAbstractos/instrumentos/Principal.java @@ -0,0 +1,18 @@ +package tutorialJava.capitulo5.ejercicios.bloque03_clasesYMetodosAbstractos.instrumentos; + +public class Principal { + public static void main(String[] args) { + // Crear una lista de instrumentos + Instrumento[] instrumentos = new Instrumento[] { + new Guitarra("Fender Stratocaster"), + new Piano("Yamaha U1"), + new Bateria("Pearl Export"), + new Guitarra("Gibson Les Paul") + }; + + // Recorrer la lista y llamar al método tocar() de cada instrumento + for (Instrumento instrumento : instrumentos) { + instrumento.tocar(); + } + } +} \ No newline at end of file diff --git a/src/tutorialJava/capitulo5/ejercicios/bloque03_clasesYMetodosAbstractos/sonidosAnimales/Animal.java b/src/tutorialJava/capitulo5/ejercicios/bloque03_clasesYMetodosAbstractos/sonidosAnimales/Animal.java new file mode 100644 index 0000000..60379d6 --- /dev/null +++ b/src/tutorialJava/capitulo5/ejercicios/bloque03_clasesYMetodosAbstractos/sonidosAnimales/Animal.java @@ -0,0 +1,16 @@ +package tutorialJava.capitulo5.ejercicios.bloque03_clasesYMetodosAbstractos.sonidosAnimales; + +abstract class Animal { + protected String nombre; + + public Animal(String nombre) { + this.nombre = nombre; + } + + // Método abstracto + public abstract void emitirSonido(); + + public String getNombre() { + return nombre; + } +} \ No newline at end of file diff --git a/src/tutorialJava/capitulo5/ejercicios/bloque03_clasesYMetodosAbstractos/sonidosAnimales/Gato.java b/src/tutorialJava/capitulo5/ejercicios/bloque03_clasesYMetodosAbstractos/sonidosAnimales/Gato.java new file mode 100644 index 0000000..3d02ae6 --- /dev/null +++ b/src/tutorialJava/capitulo5/ejercicios/bloque03_clasesYMetodosAbstractos/sonidosAnimales/Gato.java @@ -0,0 +1,12 @@ +package tutorialJava.capitulo5.ejercicios.bloque03_clasesYMetodosAbstractos.sonidosAnimales; + +class Gato extends Animal { + public Gato(String nombre) { + super(nombre); + } + + @Override + public void emitirSonido() { + System.out.println(nombre + " dice: ¡Miau, miau!"); + } +} \ No newline at end of file diff --git a/src/tutorialJava/capitulo5/ejercicios/bloque03_clasesYMetodosAbstractos/sonidosAnimales/Perro.java b/src/tutorialJava/capitulo5/ejercicios/bloque03_clasesYMetodosAbstractos/sonidosAnimales/Perro.java new file mode 100644 index 0000000..b6743ea --- /dev/null +++ b/src/tutorialJava/capitulo5/ejercicios/bloque03_clasesYMetodosAbstractos/sonidosAnimales/Perro.java @@ -0,0 +1,12 @@ +package tutorialJava.capitulo5.ejercicios.bloque03_clasesYMetodosAbstractos.sonidosAnimales; + +class Perro extends Animal { + public Perro(String nombre) { + super(nombre); + } + + @Override + public void emitirSonido() { + System.out.println(nombre + " dice: ¡Guau, guau!"); + } +} \ No newline at end of file diff --git a/src/tutorialJava/capitulo5/ejercicios/bloque03_clasesYMetodosAbstractos/sonidosAnimales/Principal.java b/src/tutorialJava/capitulo5/ejercicios/bloque03_clasesYMetodosAbstractos/sonidosAnimales/Principal.java new file mode 100644 index 0000000..4908688 --- /dev/null +++ b/src/tutorialJava/capitulo5/ejercicios/bloque03_clasesYMetodosAbstractos/sonidosAnimales/Principal.java @@ -0,0 +1,19 @@ +package tutorialJava.capitulo5.ejercicios.bloque03_clasesYMetodosAbstractos.sonidosAnimales; + +public class Principal { + public static void main(String[] args) { + // Crear un array de tipo Animal + Animal[] animales = new Animal[] { + new Perro("Max"), + new Gato("Luna"), + new Perro("Buddy"), + new Gato("Mimi") + }; + + // Llamar al método emitirSonido() para cada animal + for (Animal animal : animales) { + System.out.println("Animal: " + animal.getClass().getSimpleName()); + animal.emitirSonido(); + } + } +} \ No newline at end of file diff --git a/src/tutorialJava/capitulo5/ejercicios/bloque03_clasesYMetodosAbstractos/vehiculos/Bicicleta.java b/src/tutorialJava/capitulo5/ejercicios/bloque03_clasesYMetodosAbstractos/vehiculos/Bicicleta.java new file mode 100644 index 0000000..4560a21 --- /dev/null +++ b/src/tutorialJava/capitulo5/ejercicios/bloque03_clasesYMetodosAbstractos/vehiculos/Bicicleta.java @@ -0,0 +1,19 @@ +package tutorialJava.capitulo5.ejercicios.bloque03_clasesYMetodosAbstractos.vehiculos; + +class Bicicleta extends Vehiculo { + public Bicicleta(String modelo) { + super(modelo); + } + + @Override + public void acelerar() { + velocidadActual += 5; // Incrementa velocidad en 5 + System.out.println(modelo + " (Bicicleta) acelera a " + velocidadActual + " km/h"); + } + + @Override + public void frenar() { + velocidadActual = Math.max(0, velocidadActual - 3); // Reduce velocidad en 3 + System.out.println(modelo + " (Bicicleta) frena a " + velocidadActual + " km/h"); + } +} \ No newline at end of file diff --git a/src/tutorialJava/capitulo5/ejercicios/bloque03_clasesYMetodosAbstractos/vehiculos/Coche.java b/src/tutorialJava/capitulo5/ejercicios/bloque03_clasesYMetodosAbstractos/vehiculos/Coche.java new file mode 100644 index 0000000..827c614 --- /dev/null +++ b/src/tutorialJava/capitulo5/ejercicios/bloque03_clasesYMetodosAbstractos/vehiculos/Coche.java @@ -0,0 +1,19 @@ +package tutorialJava.capitulo5.ejercicios.bloque03_clasesYMetodosAbstractos.vehiculos; + +class Coche extends Vehiculo { + public Coche(String modelo) { + super(modelo); + } + + @Override + public void acelerar() { + velocidadActual += 20; // Incrementa velocidad en 20 + System.out.println(modelo + " (Coche) acelera a " + velocidadActual + " km/h"); + } + + @Override + public void frenar() { + velocidadActual = Math.max(0, velocidadActual - 15); // Reduce velocidad en 15 + System.out.println(modelo + " (Coche) frena a " + velocidadActual + " km/h"); + } +} \ No newline at end of file diff --git a/src/tutorialJava/capitulo5/ejercicios/bloque03_clasesYMetodosAbstractos/vehiculos/Principal.java b/src/tutorialJava/capitulo5/ejercicios/bloque03_clasesYMetodosAbstractos/vehiculos/Principal.java new file mode 100644 index 0000000..7009c69 --- /dev/null +++ b/src/tutorialJava/capitulo5/ejercicios/bloque03_clasesYMetodosAbstractos/vehiculos/Principal.java @@ -0,0 +1,22 @@ +package tutorialJava.capitulo5.ejercicios.bloque03_clasesYMetodosAbstractos.vehiculos; + +public class Principal { + public static void main(String[] args) { + // Crear instancias de vehículos + Vehiculo[] vehiculos = new Vehiculo[] { + new Coche("Toyota Corolla"), + new Bicicleta("BMX Pro"), + new Coche("Ford Mustang"), + new Bicicleta("Mountain Bike") + }; + + // Simular la aceleración y el frenado + for (Vehiculo vehiculo : vehiculos) { + System.out.println("Vehículo: " + vehiculo.getModelo()); + vehiculo.acelerar(); + vehiculo.acelerar(); + vehiculo.frenar(); + System.out.println("------------------------"); + } + } +} \ No newline at end of file diff --git a/src/tutorialJava/capitulo5/ejercicios/bloque03_clasesYMetodosAbstractos/vehiculos/Vehiculo.java b/src/tutorialJava/capitulo5/ejercicios/bloque03_clasesYMetodosAbstractos/vehiculos/Vehiculo.java new file mode 100644 index 0000000..18ef6da --- /dev/null +++ b/src/tutorialJava/capitulo5/ejercicios/bloque03_clasesYMetodosAbstractos/vehiculos/Vehiculo.java @@ -0,0 +1,23 @@ +package tutorialJava.capitulo5.ejercicios.bloque03_clasesYMetodosAbstractos.vehiculos; + +abstract class Vehiculo { + protected int velocidadActual; + protected String modelo; + + public Vehiculo(String modelo) { + this.modelo = modelo; + this.velocidadActual = 0; // La velocidad inicial es 0 + } + + // Métodos abstractos + public abstract void acelerar(); + public abstract void frenar(); + + public int getVelocidadActual() { + return velocidadActual; + } + + public String getModelo() { + return modelo; + } +} \ No newline at end of file diff --git a/src/tutorialJava/capitulo5/ejercicios/bloque04_instanciasVsStatic/banco/Banco.java b/src/tutorialJava/capitulo5/ejercicios/bloque04_instanciasVsStatic/banco/Banco.java new file mode 100644 index 0000000..86f1848 --- /dev/null +++ b/src/tutorialJava/capitulo5/ejercicios/bloque04_instanciasVsStatic/banco/Banco.java @@ -0,0 +1,16 @@ +package tutorialJava.capitulo5.ejercicios.bloque04_instanciasVsStatic.banco; + +public class Banco { + private static double tasaDeInteres = 2.5; // Tasa de interés inicial (porcentaje) + + // Método estático para cambiar la tasa de interés + public static void cambiarTasaDeInteres(double nuevaTasa) { + tasaDeInteres = nuevaTasa; + System.out.println("La nueva tasa de interés es: " + tasaDeInteres + "%"); + } + + // Método estático para obtener la tasa de interés + public static double obtenerTasaDeInteres() { + return tasaDeInteres; + } +} \ No newline at end of file diff --git a/src/tutorialJava/capitulo5/ejercicios/bloque04_instanciasVsStatic/banco/Cuenta.java b/src/tutorialJava/capitulo5/ejercicios/bloque04_instanciasVsStatic/banco/Cuenta.java new file mode 100644 index 0000000..96b7110 --- /dev/null +++ b/src/tutorialJava/capitulo5/ejercicios/bloque04_instanciasVsStatic/banco/Cuenta.java @@ -0,0 +1,24 @@ +package tutorialJava.capitulo5.ejercicios.bloque04_instanciasVsStatic.banco; + +class Cuenta { + private String titular; + private double saldo; + + // Constructor + public Cuenta(String titular, double saldo) { + this.titular = titular; + this.saldo = saldo; + } + + // Método para calcular el interés basado en la tasa actual + public double calcularInteres() { + return saldo * Banco.obtenerTasaDeInteres() / 100; + } + + // Método para mostrar información de la cuenta + public void mostrarInformacion() { + System.out.println("Titular: " + titular); + System.out.println("Saldo: " + saldo); + System.out.println("Interés generado: " + calcularInteres()); + } +} \ No newline at end of file diff --git a/src/tutorialJava/capitulo5/ejercicios/bloque04_instanciasVsStatic/banco/Principal.java b/src/tutorialJava/capitulo5/ejercicios/bloque04_instanciasVsStatic/banco/Principal.java new file mode 100644 index 0000000..0378e6e --- /dev/null +++ b/src/tutorialJava/capitulo5/ejercicios/bloque04_instanciasVsStatic/banco/Principal.java @@ -0,0 +1,22 @@ +package tutorialJava.capitulo5.ejercicios.bloque04_instanciasVsStatic.banco; + +public class Principal { + public static void main(String[] args) { + // Crear cuentas + Cuenta cuenta1 = new Cuenta("Juan Pérez", 5000); + Cuenta cuenta2 = new Cuenta("Ana López", 10000); + + // Calcular intereses con la tasa inicial + System.out.println("Intereses con la tasa inicial:"); + cuenta1.mostrarInformacion(); + cuenta2.mostrarInformacion(); + + // Cambiar la tasa de interés + Banco.cambiarTasaDeInteres(3.5); + + // Calcular intereses con la nueva tasa + System.out.println("\nIntereses con la nueva tasa:"); + cuenta1.mostrarInformacion(); + cuenta2.mostrarInformacion(); + } +} \ No newline at end of file diff --git a/src/tutorialJava/capitulo5/ejercicios/bloque04_instanciasVsStatic/productos/Principal.java b/src/tutorialJava/capitulo5/ejercicios/bloque04_instanciasVsStatic/productos/Principal.java new file mode 100644 index 0000000..01a0754 --- /dev/null +++ b/src/tutorialJava/capitulo5/ejercicios/bloque04_instanciasVsStatic/productos/Principal.java @@ -0,0 +1,19 @@ +package tutorialJava.capitulo5.ejercicios.bloque04_instanciasVsStatic.productos; + +public class Principal { + public static void main(String[] args) { + // Crear instancias de Producto + Producto p1 = new Producto("Producto A"); + Producto p2 = new Producto("Producto B"); + Producto p3 = new Producto("Producto C"); + + // Verificar el valor del contador + System.out.println("Número total de productos creados: " + Producto.obtenerContador()); + + // Mostrar nombres de los productos + System.out.println("Productos creados:"); + System.out.println(p1.getNombre()); + System.out.println(p2.getNombre()); + System.out.println(p3.getNombre()); + } +} \ No newline at end of file diff --git a/src/tutorialJava/capitulo5/ejercicios/bloque04_instanciasVsStatic/productos/Producto.java b/src/tutorialJava/capitulo5/ejercicios/bloque04_instanciasVsStatic/productos/Producto.java new file mode 100644 index 0000000..e510da6 --- /dev/null +++ b/src/tutorialJava/capitulo5/ejercicios/bloque04_instanciasVsStatic/productos/Producto.java @@ -0,0 +1,22 @@ +package tutorialJava.capitulo5.ejercicios.bloque04_instanciasVsStatic.productos; + +public class Producto { + private static int CONTADOR = 0; // Contador estático de instancias + private String nombre; + + // Constructor + public Producto(String nombre) { + this.nombre = nombre; + CONTADOR++; // Incrementar el contador cada vez que se crea una instancia + } + + // Método estático para obtener el contador + public static int obtenerContador() { + return CONTADOR; + } + + // Método para obtener el nombre del producto + public String getNombre() { + return nombre; + } +} \ No newline at end of file diff --git a/src/tutorialJava/capitulo5/ejercicios/bloque04_instanciasVsStatic/usuarios/Principal.java b/src/tutorialJava/capitulo5/ejercicios/bloque04_instanciasVsStatic/usuarios/Principal.java new file mode 100644 index 0000000..33f440c --- /dev/null +++ b/src/tutorialJava/capitulo5/ejercicios/bloque04_instanciasVsStatic/usuarios/Principal.java @@ -0,0 +1,25 @@ +package tutorialJava.capitulo5.ejercicios.bloque04_instanciasVsStatic.usuarios; + +public class Principal { + public static void main(String[] args) { + // Crear usuarios + Usuario usuario1 = new Usuario("Alicia"); + Usuario usuario2 = new Usuario("Juan"); + Usuario usuario3 = new Usuario("Mafalda"); + + // Mostrar el total de usuarios registrados + System.out.println("Total de usuarios registrados: " + Usuario.obtenerTotalUsuarios()); + + // Eliminar un usuario + usuario2.eliminarUsuario(); + + // Mostrar el total de usuarios después de la eliminación + System.out.println("Total de usuarios registrados: " + Usuario.obtenerTotalUsuarios()); + + // Eliminar otro usuario + usuario1.eliminarUsuario(); + + // Mostrar el total de usuarios después de otra eliminación + System.out.println("Total de usuarios registrados: " + Usuario.obtenerTotalUsuarios()); + } +} \ No newline at end of file diff --git a/src/tutorialJava/capitulo5/ejercicios/bloque04_instanciasVsStatic/usuarios/Usuario.java b/src/tutorialJava/capitulo5/ejercicios/bloque04_instanciasVsStatic/usuarios/Usuario.java new file mode 100644 index 0000000..987c47e --- /dev/null +++ b/src/tutorialJava/capitulo5/ejercicios/bloque04_instanciasVsStatic/usuarios/Usuario.java @@ -0,0 +1,33 @@ +package tutorialJava.capitulo5.ejercicios.bloque04_instanciasVsStatic.usuarios; + +public class Usuario { + private static int totalUsuarios = 0; // Contador estático para total de usuarios + private String nombre; + + // Constructor + public Usuario(String nombre) { + this.nombre = nombre; + totalUsuarios++; // Incrementar contador al crear un usuario + System.out.println("Usuario registrado: " + nombre); + } + + // Método para eliminar un usuario + public void eliminarUsuario() { + if (totalUsuarios > 0) { + totalUsuarios--; // Decrementar contador al eliminar un usuario + System.out.println("Usuario eliminado: " + nombre); + } else { + System.out.println("No hay usuarios registrados para eliminar."); + } + } + + // Método estático para obtener el total de usuarios + public static int obtenerTotalUsuarios() { + return totalUsuarios; + } + + // Método para obtener el nombre del usuario + public String getNombre() { + return nombre; + } +} \ No newline at end of file