Saltar al contenido principal

Ejercicios propuestos

Nivel 1 — Clases y objetos

1. Clase Persona

Crea una clase Persona con las propiedades:

  • nombre
  • edad

Crea dos personas y muestra sus datos por consola.


2. Método saludar

Modifica la clase Persona del ejercicio anterior para añadir un método saludar().

El método debe mostrar:

Hola, me llamo Ana y tengo 25 años.

Crea varias personas y haz que cada una se presente.


3. Modificar propiedades

Crea una clase Producto con:

  • nombre
  • precio

Añade un método aplicarDescuento(porcentaje) que modifique el precio del producto.

Por ejemplo:

let producto = new Producto("Teclado", 50);

producto.aplicarDescuento(20);

El precio debería pasar a ser 40.


4. Métodos que devuelven valores

Crea una clase Rectangulo con:

  • base
  • altura

Añade dos métodos:

  • calcularArea()
  • calcularPerimetro()

Por ejemplo:

let rectangulo = new Rectangulo(10, 5);

console.log(rectangulo.calcularArea());
console.log(rectangulo.calcularPerimetro());

Salida:

50
30

Nivel 2 — Constructores y comportamiento

5. Cuenta bancaria

Crea una clase CuentaBancaria con:

  • titular
  • saldo

Añade los métodos:

  • depositar(cantidad)
  • retirar(cantidad)
  • mostrarSaldo()

El método retirar() no debe permitir retirar una cantidad superior al saldo disponible.

Ejemplo:

let cuenta = new CuentaBancaria("Ana", 500);

cuenta.depositar(200);
cuenta.retirar(100);

cuenta.mostrarSaldo();

6. Controlar estados

Crea una clase Bombilla con una propiedad encendida.

Añade los métodos:

  • encender()
  • apagar()
  • mostrarEstado()

Una bombilla nueva debe comenzar apagada.

Ejemplo:

let bombilla = new Bombilla();

bombilla.mostrarEstado();
bombilla.encender();
bombilla.mostrarEstado();

Salida:

La bombilla está apagada.
La bombilla está encendida.

7. Inventario

Crea una clase Producto con:

  • nombre
  • precio
  • stock

Añade un método vender(cantidad).

El método debe:

  • Comprobar que hay suficiente stock.
  • Reducir el stock si se puede realizar la venta.
  • Mostrar un mensaje si no hay suficientes unidades.

Ejemplo:

let producto = new Producto("Ratón", 20, 10);

producto.vender(3);

El stock debería quedar en 7.


8. Array dentro de una clase

Crea una clase Alumno con:

  • nombre
  • notas

notas será un array.

Añade los métodos:

  • añadirNota(nota)
  • calcularMedia()
  • mostrarNotas()

Ejemplo:

let alumno = new Alumno("Ana");

alumno.añadirNota(8);
alumno.añadirNota(7);
alumno.añadirNota(9);

console.log(alumno.calcularMedia());

Salida:

8

Nivel 3 — POO y varias clases

9. Biblioteca

Crea una clase Libro con:

  • titulo
  • autor
  • disponible

Añade los métodos:

  • prestar()
  • devolver()

Después crea una clase Biblioteca que tenga un array de libros.

Debe tener los métodos:

  • añadirLibro(libro)
  • mostrarLibros()
  • buscarLibro(titulo)

Por ejemplo:

let libro1 = new Libro("1984", "George Orwell");
let libro2 = new Libro("El Hobbit", "J.R.R. Tolkien");

let biblioteca = new Biblioteca();

biblioteca.añadirLibro(libro1);
biblioteca.añadirLibro(libro2);

biblioteca.mostrarLibros();

10. Herencia

Crea una clase Animal con:

  • nombre
  • método hacerSonido()

Después crea dos clases que hereden de ella:

  • Perro
  • Gato

Cada una debe sobrescribir hacerSonido().

Por ejemplo:

let perro = new Perro("Toby");
let gato = new Gato("Michi");

perro.hacerSonido();
gato.hacerSonido();

Salida:

Toby hace: ¡Guau!
Michi hace: ¡Miau!

11. Vehículos

Crea una clase Vehiculo con:

  • marca
  • modelo

y un método:

  • mostrarInformacion()

Después crea:

  • Coche
  • Moto

Ambas clases deben heredar de Vehiculo.

Añade alguna propiedad específica a cada una:

Coche → numeroPuertas
Moto → cilindrada

Haz que cada vehículo pueda mostrar toda su información.


12. super

Modifica el ejercicio anterior para que las clases hijas utilicen super() en sus constructores.

Por ejemplo, Coche debe utilizar el constructor de Vehiculo para establecer marca y modelo.


Nivel 4 — Arrays de objetos y POO

13. Sistema de empleados

Crea una clase Empleado con:

  • nombre
  • salario

y un método:

  • calcularSalarioAnual()

Después crea varios empleados y guárdalos en un array.

Recorre el array utilizando un for...of y muestra el salario anual de cada uno.


14. Sistema de usuarios

Crea una clase Usuario con:

  • nombre
  • email
  • activo

Añade los métodos:

  • activar()
  • desactivar()
  • mostrarInformacion()

Después crea un array con varios usuarios.

Utiliza un for...of y un if para mostrar únicamente los usuarios activos.


15. Carrito de compra

Crea una clase Producto:

nombre
precio

Y una clase Carrito que contenga un array de productos.

La clase Carrito debe tener:

  • añadirProducto(producto)
  • eliminarProducto(nombre)
  • calcularTotal()
  • mostrarProductos()

Ejemplo:

let teclado = new Producto("Teclado", 40);
let raton = new Producto("Ratón", 20);

let carrito = new Carrito();

carrito.añadirProducto(teclado);
carrito.añadirProducto(raton);

console.log(carrito.calcularTotal());

Salida:

60

16. Videojuego

Crea una clase Personaje con:

  • nombre
  • vida
  • ataque

Añade los métodos:

  • atacar(personaje)
  • recibirDaño(cantidad)
  • mostrarEstado()

Después crea dos personajes:

let guerrero = new Personaje("Guerrero", 100, 20);
let enemigo = new Personaje("Enemigo", 80, 15);

Haz que el guerrero ataque al enemigo y comprueba cómo cambia su vida.


17. Herencia en un videojuego

Modifica el ejercicio anterior creando:

  • Personaje
  • Guerrero
  • Mago

El Guerrero tendrá una propiedad armadura.

El Mago tendrá una propiedad mana.

Cada clase debe tener un comportamiento diferente para atacar.

Utiliza herencia y sobrescritura de métodos.


Nivel 5 — Ejercicio completo

18. Sistema de gestión de una tienda

Crea un pequeño sistema utilizando varias clases.

Debe existir:

Producto

Propiedades:

  • nombre
  • precio
  • stock

Métodos:

  • vender(cantidad)
  • reponer(cantidad)

Cliente

Propiedades:

  • nombre
  • email

Tienda

Propiedades:

  • nombre
  • productos
  • clientes

Métodos:

  • añadirProducto(producto)
  • registrarCliente(cliente)
  • buscarProducto(nombre)
  • mostrarProductos()

Después crea varios productos y clientes y realiza diferentes operaciones.

Por ejemplo:

let tienda = new Tienda("Mi Tienda");

let teclado = new Producto("Teclado", 40, 10);
let raton = new Producto("Ratón", 20, 15);

tienda.añadirProducto(teclado);
tienda.añadirProducto(raton);

tienda.mostrarProductos();