package galia_kalchevska;
import java.io.*;
/*La clase la hacemos serializable para poder escribir los objetos en el fichero y después recuperarlos*/
/**
* Clase que sirve para validar el CIF de un Cliente
*
* @author GALIA
* @version 6.0
*/
public abstract class Identificador implements Cloneable,
Comparable<Identificador>, Serializable {
/* Atributos privados */
private static final long serialVersionUID = 1L;
/* Identificador general */
private static String id;
/* con el que vamos a comparar, es auxiliar */
private Identificador identificador_comparando;
/* Constructor */
public Identificador(String id) {
Identificador.id = id;
}
/* Setter y getter */
public String getId() {
return id;
}
public void setId(String id) {
Identificador.id = id;
}
/* Obliga a implementar un método de validación */
public boolean validar() {
return false;
}
public String toString() {
return id;
}
/* ya te lo expliqué en la práctica de la segunda evaluación */
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((id == null) ? 0 : id.hashCode());
return result;
}
/*
* más de lo mismo, usamos instanceof para ver si un objeto es exactamente
* igual a otro
*/
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (!(obj instanceof Identificador))
return false;
setIdentificador_comparando((Identificador) obj);
if (id == null) {
if (Identificador.id != null)
return false;
} else if (!id.equals(Identificador.id))
return false;
return true;
}
/*
* Captura las excepciones en caso de que fuesen clases diferentes los
* objetos que se comparan
*/
public int compareTo(Identificador obj) throws ClassCastException {
return this.getId().compareTo(obj.getId());
}
/* Getter y Setter */
public Identificador getIdentificador_comparando() {
return identificador_comparando;
}
public void setIdentificador_comparando(
Identificador identificador_comparando) {
this.identificador_comparando = identificador_comparando;
}
}
La clase CIF hereda de Identificador, Identificador es abstracta y de ella no se pueden instanciar objetos.
Be the first to comment
You can use [html][/html], [css][/css], [php][/php] and more to embed the code. Urls are automatically hyperlinked. Line breaks and paragraphs are automatically generated.