// Created by Julio Tentor <[email protected]>
//
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
}
Comments