Foro de elhacker.net

Programación => Java => Mensaje iniciado por: n-utz en 2 Abril 2017, 00:30 am



Título: Dudas en metodos
Publicado por: n-utz en 2 Abril 2017, 00:30 am
Buenas gente, soy muy nuevo en Java y en esto de programacion orientado a objetos. En la facultad me dieron un codigo para que interprete, y la verdad no entiendo bien unos metodos:

Código:
public class Punto {
private double x;
private double y;

//GETTERS & SETTERS

public boolean equals(Punto p) {
return (((x == p.getX()) && (y == p.getY())));
}

public String toString() {
return "(" + x + "," + y + ")";
}


Esos metodos son con los que tengo dudas, no se que hace el equals, en el apunte dice que es para redefinir un objeto pero a que se refiere con eso. No entiendo si es para cambiar los valores de un objeto o no se.

Y el metodo toString simplemente transforma dichos parametros en un String?, es decir devuelve como String esos valores?

Muchas gracias.


Título: Re: Dudas en metodos
Publicado por: Serapis en 2 Abril 2017, 01:49 am
Equals es el nombre de uno de los métodos de la clase.
Lo que hace es comparar si el punto recibido (una instancia de esa misma clase), es igual que los valores alojados del punto actual (otra instancia).

cuando tu definas entonces dos puntos y le des valores, por ejemplo:
a.x vale 30
a.Y vale 96
Y tengas otro punto
b.X vale 47
b.Y vale 81
entonces podrías hacer: "si a.Equals(b) luego ...."
en este caso devolverá false, porque el punto 'a' es distinto al punto 'b', ya que el método Equals, evalúa los valores de X e Y de ambos puntos y encuentra que uno o los dos son distintos, y para devolver TRUE, deben ser iguales.

El método ToString, efectivamente convierte en texto los valores almacenados en X e Y, pero además los formatea metiéndolos entre paréntesis y separados por una coma, así, suponiendo que X vale 23 e Y vale 17, devolverá este texto: (23,17)