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);
}
}
}