Foro sobre Java SE > ejercicio sobre clase Punto y Punto3D
public String toString() {
return getX() + "," + getY();
}
es más simple que tu método.
Te he reescrito la clase Punto, de esta manera:
public class Punto {
private int x, y;
// constructor
public Punto(final int x, final int y) {
this.x = x;
this.y = y;
}
public void setX(final int x) {
this.x = x;
}
public void setY(final int y) {
this.y = y;
}
public int getX() {
return x;
}
public int getY() {
return y;
}
@Override
public boolean equals(final Object punto) {
return punto instanceof Punto ? x == ((Punto) punto).getX() && y == ((Punto) punto).getY() : false;
}
@Override
public int hashCode() {
int hash = 7;
hash = 61 * hash + this.x;
hash = 61 * hash + this.y;
return hash;
}
@Override
public String toString() {
return getX() + "," + getY();
}
}
Lo mismo, pero para la clase Punto3D:
public class Punto3D extends Punto {
private int z;
public Punto3D(final int x, final int y, final int z) {
super(x, y);
this.z = z;
}
public void setZ(final int z) {
this.z = z;
}
public int getZ() {
return z;
}
// Sobrescribe el metodo equals de la clase Punto
@Override
public boolean equals(final Object punto3D) {
return punto3D instanceof Punto3D
? getX() == ((Punto3D) punto3D).getX() && getY() == ((Punto3D) punto3D).getY() && this.z == ((Punto3D) punto3D).getY()
: false;
}
@Override
public int hashCode() {
int hash = 3;
hash = 59 * hash + this.z;
return hash;
}
@Override
public String toString() {
return getX() + "," + getY() + "," + getZ();
}
}
Hay un bug evidente (por correr ;))
public boolean equals(final Object punto3D) {
return punto3D instanceof Punto3D
? getX() == ((Punto3D) punto3D).getX() && getY() == ((Punto3D) punto3D).getY() && this.z == ((Punto3D) punto3D).getZ()
: false;
}
gracias por todo, pero sigue sin funcionarme nada solo me imprime la comparativa de OperarPuntos.
tengo un cacao mental que ya no se que hacer, mañana cuando entregue el ejercicio ya me diran.
de nuevo gracias por vuestra ayuda.
Tal y como tienes definida la clase Punto, hay un método toString() que devuelve las coordenadas del punto en forma de cadena de caracteres.
Por lo tanto, una instancia cualquiera de Punto puede llamar a ese método:
Punto punto = new Punto(2,3);
System.out.println(punto.toString()):
debería imprimir en pantalla las coordenadas de ese punto.