package genaleapruebcodigo; import java.util.Objects; public class Libro { //region Attributes private String titulo; private String autor; private String editorial; private Integer anioPublicacion; private Double precio; //endregion //region Getters and Setters public String getTitulo() { return this.titulo; } public String setTitulo(String titulo) { this.titulo = titulo; return this.titulo; } public String getAutor() { return this.autor; } public String setAutor(String autor) { this.autor = autor; return this.autor; } public String getEditorial() { return this.editorial; } public String setEditorial(String editorial) { this.editorial = editorial; return this.editorial; } public Integer getAnioPublicacion() { return this.anioPublicacion; } public Integer setAnioPublicacion (Integer anioPublicacion) { this.anioPublicacion = anioPublicacion; return this.anioPublicacion; } public Double getPrecio() { return this.precio; } public Double setPrecio(Double precio) { this.precio = precio; return this.precio; } //endregion //region Constructors public Libro() { this("sin título", "sin autor", "sin editorial", 0,0.0); } public Libro(String titulo, String autor) { this(titulo, autor, "sin editorial", 0,0.0); } public Libro(String titulo, String autor, Integer anioPublicacion) { this(titulo, autor, "sin editorial", anioPublicacion,0.0); } public Libro(String titulo, String autor, Integer anioPublicacion, Double precio) { this(titulo, autor, "sin editorial", anioPublicacion, precio); } public Libro(String titulo, String autor, Double precio) { this(titulo, autor, "sin editorial", 0, precio); } public Libro(String titulo, String autor, String editorial) { this(titulo, autor, editorial, 0,0.0); } public Libro(String titulo, String autor, String editorial, Integer anioPublicacion) { this(titulo, autor, editorial, anioPublicacion,0.0); } public Libro(String titulo, String autor, String editorial, Double precio) { this(titulo, autor, editorial, 0, precio); } public Libro(String titulo, String autor, String editorial, Integer anioPublicacion, Double precio) { setTitulo(titulo); // doble encapsulamiento setAutor(autor); setEditorial(editorial); setAnioPublicacion(anioPublicacion); setPrecio(precio); } //endregion //region Override Object basic methods @Override public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; Libro libro = (Libro) o; return Objects.equals(getTitulo(), libro.getTitulo()) && Objects.equals(getAutor(), libro.getAutor()) && Objects.equals(getEditorial(), libro.getEditorial()) && Objects.equals(getAnioPublicacion(), libro.getAnioPublicacion()); } @Override public int hashCode() { return Objects.hash(getTitulo(), getAutor(), getEditorial(), getAnioPublicacion()); } @Override public String toString() { return "Libro " + "Título='" + getTitulo() + '\'' + ", Autor='" + getAutor() + '\'' + ", Editorial='" + getEditorial() + '\'' + ", Año de Publicación=" + getAnioPublicacion() + ", Precio=" + getPrecio() + '\n'; } //endregion }