Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
1
respuesta

Desafio: Construyendo Una Nueva App, BookShelf Biblioteca Virtual

Clase Publicacion

package com.biblioteca.modelos;

public class Publicacion implements Comparable {
private String titulo;
private int anioPublicacion;

public Publicacion(String titulo, int anioPublicacion) {
    this.titulo = titulo;
    this.anioPublicacion = anioPublicacion;
}

public String getTitulo() {
    return titulo;
}

public int getAnioPublicacion() {
    return anioPublicacion;
}

@Override
public int compareTo(Publicacion otra) {
    return this.titulo.compareTo(otra.titulo);
}

@Override
public String toString() {
    return titulo + " (" + anioPublicacion + ")";
}

}

Clase Libro

package com.biblioteca.modelos;

public class Libro extends Publicacion {
private String autor;

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

@Override
public String toString() {
    return "Libro: " + getTitulo() + " - " + autor + " (" + getAnioPublicacion() + ")";
}

}

Clase Revista

package com.biblioteca.modelos;

public class Revista extends Publicacion {
private int numeroEdicion;

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

@Override
public String toString() {
    return "Revista: " + getTitulo() + " N°" + numeroEdicion + " (" + getAnioPublicacion() + ")";
}

}

Clase PrincipalBiblioteca

package com.biblioteca.principal;

import com.biblioteca.modelos.*;
import java.util.ArrayList;
import java.util.Collections;

public class PrincipalBiblioteca {
public static void main(String[] args) {

    Libro libro1 = new Libro("Cien años de soledad", 1967, "Gabriel García Márquez");
    Libro libro2 = new Libro("El principito", 1943, "Antoine de Saint-Exupéry");
    Revista revista1 = new Revista("National Geographic", 2023, 120);

    ArrayList<Publicacion> publicaciones = new ArrayList<>();
    publicaciones.add(libro1);
    publicaciones.add(libro2);
    publicaciones.add(revista1);

    // Ordenar publicaciones por título
    Collections.sort(publicaciones);

    System.out.println(" Lista ordenada de publicaciones:");
    for (Publicacion p : publicaciones) {
        System.out.println(p);
    }
}

}

1 respuesta

Hola Alexis, espero que estés bien

¡Qué interesante proyecto estás desarrollando con tu aplicación BookShelf! Veo que ya tienes una buena estructura con las clases Publicacion, Libro y Revista. Todo parece estar bien organizado y tu lógica para ordenar las publicaciones por título está bien implementada.

Una sugerencia que podría mejorar tu aplicación es añadir más funcionalidades, como por ejemplo:

  1. Buscar Publicaciones: Podrías implementar un método que permita buscar publicaciones por título o autor. Esto podría hacerse recorriendo la lista de publicaciones y comparando los títulos o autores.

  2. Filtrar por Tipo: Podrías agregar la opción de filtrar las publicaciones para mostrar solo libros o solo revistas. Esto podría hacerse utilizando el operador instanceof para verificar el tipo de cada objeto en la lista.

  3. Añadir y Eliminar Publicaciones: Implementar métodos para añadir nuevas publicaciones o eliminar existentes podría ser útil para gestionar la biblioteca de manera dinámica.

Aquí tienes un ejemplo de cómo podrías implementar una búsqueda simple por título:

public static Publicacion buscarPorTitulo(ArrayList<Publicacion> publicaciones, String tituloBuscado) {
    for (Publicacion p : publicaciones) {
        if (p.getTitulo().equalsIgnoreCase(tituloBuscado)) {
            return p;
        }
    }
    return null; // Si no se encuentra, devuelve null
}

Puedes llamar a este método desde tu main y probarlo con diferentes títulos para ver cómo funciona.

Espero que estas sugerencias te sean útiles para seguir mejorando tu aplicación. ¡Sigue adelante con tu aprendizaje y experimentación!

Espero haber ayudado y buenos estudios!