Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
2
respuestas

Proyecto Biblioteca

Estructura del Proyecto

Ingrese aquí la descripción de esta imagen para ayudar con la accesibilidad

1. Paquete: modelos

Clase Item:

package com.aluracursos.library.modelos;

public abstract class Item { private String titulo; private String autor; private String codigo;

public Item(String titulo, String autor, String codigo) {
    this.titulo = titulo;
    this.autor = autor;
    this.codigo = codigo;
}

public String getTitulo() {
    return titulo;
}

public String getAutor() {
    return autor;
}

public String getCodigo() {
    return codigo;
}

public abstract void mostrarInformacion();

}

Clase Libro: package com.aluracursos.library.modelos;

public class Libro extends Item { private int numeroPaginas;

public Libro(String titulo, String autor, String codigo, int numeroPaginas) {
    super(titulo, autor, codigo);
    this.numeroPaginas = numeroPaginas;
}

public int getNumeroPaginas() {
    return numeroPaginas;
}

@Override
public void mostrarInformacion() {
    System.out.println("Título: " + getTitulo());
    System.out.println("Autor: " + getAutor());
    System.out.println("Código: " + getCodigo());
    System.out.println("Número de Páginas: " + getNumeroPaginas());
}

}

Clase Revista: package com.aluracursos.library.modelos;

public class Revista extends Item { private int numeroEdicion;

public Revista(String titulo, String autor, String codigo, int numeroEdicion) {
    super(titulo, autor, codigo);
    this.numeroEdicion = numeroEdicion;
}

public int getNumeroEdicion() {
    return numeroEdicion;
}

@Override
public void mostrarInformacion() {
    System.out.println("Título: " + getTitulo());
    System.out.println("Autor: " + getAutor());
    System.out.println("Código: " + getCodigo());
    System.out.println("Número de Edición: " + getNumeroEdicion());
}

}

Clase Periodico: package com.aluracursos.library.modelos;

public class Periodico extends Item { private String fechaPublicacion;

public Periodico(String titulo, String autor, String codigo, String fechaPublicacion) {
    super(titulo, autor, codigo);
    this.fechaPublicacion = fechaPublicacion;
}

public String getFechaPublicacion() {
    return fechaPublicacion;
}

@Override
public void mostrarInformacion() {
    System.out.println("Título: " + getTitulo());
    System.out.println("Autor: " + getAutor());
    System.out.println("Código: " + getCodigo());
    System.out.println("Fecha de Publicación: " + getFechaPublicacion());
}

}

2. Paquete: interfaces

Interfaz Prestamo: package com.aluracursos.library.interfaces;

public interface Prestamo { void prestar(); void devolver(); boolean estaPrestado(); }

3. Implementar la Interfaz en Clases

Modificar Clase Libro: package com.aluracursos.library.modelos;

import com.aluracursos.library.interfaces.Prestamo;

public class Libro extends Item implements Prestamo { private int numeroPaginas; private boolean prestado;

public Libro(String titulo, String autor, String codigo, int numeroPaginas) {
    super(titulo, autor, codigo);
    this.numeroPaginas = numeroPaginas;
    this.prestado = false;
}

public int getNumeroPaginas() {
    return numeroPaginas;
}

@Override
public void mostrarInformacion() {
    System.out.println("Título: " + getTitulo());
    System.out.println("Autor: " + getAutor());
    System.out.println("Código: " + getCodigo());
    System.out.println("Número de Páginas: " + getNumeroPaginas());
}

@Override
public void prestar() {
    this.prestado = true;
    System.out.println("Libro prestado.");
}

@Override
public void devolver() {
    this.prestado = false;
    System.out.println("Libro devuelto.");
}

@Override
public boolean estaPrestado() {
    return prestado;
}

}

4. Paquete: calculos

Clase CalculadoraPrestamos: package com.aluracursos.library.calculos;

import com.aluracursos.library.interfaces.Prestamo;

public class CalculadoraPrestamos { private int totalPrestamos = 0;

public void calcularPrestamo(Prestamo item) {
    if (item.estaPrestado()) {
        totalPrestamos++;
    }
}

public int getTotalPrestamos() {
    return totalPrestamos;
}

}

2 respuestas

ENVIO ACA SEGUNDA PARTE POR LIMITANTES DE NUMERO DE CARACTERES.

5. Paquete Principal

Clase Principal: package com.aluracursos.library;

import com.aluracursos.library.modelos.*; import com.aluracursos.library.calculos.CalculadoraPrestamos;

public class Principal { public static void main(String[] args) { Libro libro1 = new Libro("Cien Años de Soledad", "Gabriel García Márquez", "12345", 417); Revista revista1 = new Revista("National Geographic", "Varios", "67890", 202); Periodico periodico1 = new Periodico("The Times", "Varios", "11111", "2025-01-01");

    libro1.mostrarInformacion();
    revista1.mostrarInformacion();
    periodico1.mostrarInformacion();

    libro1.prestar();
    System.out.println("¿Está prestado el libro?: " + libro1.estaPrestado());

    CalculadoraPrestamos calculadora = new CalculadoraPrestamos();
    calculadora.calcularPrestamo(libro1);
    System.out.println("Total de préstamos: " + calculadora.getTotalPrestamos());

    libro1.devolver();
    System.out.println("¿Está prestado el libro?: " + libro1.estaPrestado());
}

}

¡Hola Javier! ¿Cómo estás?

Gracias por tu aporte en el foro. Su contribución es esencial para el crecimiento de nuestra comunidad en Alura.

Sigue así y no dudes en volver al foro si tienes alguna pregunta o dificultad.

Abrazos y buenos estudios!

Si este post te ayudó, por favor, marca como solucionado ✓. Continúa con tus estudios!