Προς το περιεχόμενο

Java μέθοδος equals


konanast

Προτεινόμενες αναρτήσεις

Δημοσ.

Έχω δημιουργήσει δύο αντικείμενα

Truck tr1 = new Truck("Mercedes","Panos","Athens");

Truck tr2 = new Truck("AlfaRomeo","Kostas","Patra");

Μπορεί να μου εξηγήσei κάποιος πως μπορώ να κάνω

Override την μέθοδο equals?

 

Κυρίως θέλω να μου εξηγήσει λίγο το όρισμα που παίρνει!

public boolean equals(Object obj) ...

 

 

thanks...

Δημοσ.

για το override μπορεις να γραψεις απλα μια νεα μεθοδο equals μεσα στην κλαση σου η οποια θα εχει το ιδιο return type και θα δεχεται τα ιδια arguments με την equals στην κλαση object.

 

δε ξερω τι εννοεις εκει που λες ορισμα γιατι εγω τα εχω μαθει ολα στα αγγλικα..

Δημοσ.

Δεν είναι κάτι το περίεργο το όρισμά σου.Είναι ένα Object που αν δεν ξέρεις είναι η τάξη στην κορυφή της πυραμίδας όλων των τάξεων της Java.Οπότε όλα τα αντικείμενα είναι Object και κατά συνέπεια μπορείς ως parameter να βάλεις το οτιδήποτε.

 

Αυτή ήταν η ερώτησή σου?

Δημοσ.
Έχω δημιουργήσει δύο αντικείμενα

Truck tr1 = new Truck("Mercedes","Panos","Athens");

Truck tr2 = new Truck("AlfaRomeo","Kostas","Patra");

Μπορεί να μου εξηγήσei κάποιος πως μπορώ να κάνω

Override την μέθοδο equals?

 

Κυρίως θέλω να μου εξηγήσει λίγο το όρισμα που παίρνει!

public boolean equals(Object obj) ...

 

 

thanks...

 

Θα πρέπει να κάνεις κάτι σαν και το παρακάτω

 

>
public class Truck
{
...
...

public boolean equals(Object o)
{
  if (!(o instanceof Truck))
     return false;

  Truck truck = (Truck) o;
  return name.equals(o.getName()) && city.equals(name.getCity()) ...
}

}

 

Επίσης θα πρέπει να κάνεις override και την hashcode κάτι απλό σαν

 

>
public int hashCode()
{
  return 0;
}

Δημοσ.
Θα πρέπει να κάνεις κάτι σαν και το παρακάτω

 

>
public class Truck
{
...
...

public boolean equals(Object o)
{
  if (!(o instanceof Truck))
     return false;

  Truck truck = (Truck) o;
  return name.equals(o.getName()) && city.equals(name.getCity()) ...
}

}

 

Επίσης θα πρέπει να κάνεις override και την hashcode κάτι απλό σαν

 

>
public int hashCode()
{
  return 0;
}

 

 

 

Thanks Φίλε!

Αν έχεις χρόνο μπορείς να μου εξηγήσεις λίγο τί κάνει η instance of?

Δημοσ.

Η instanceof σου λέει αν κάτι είναι αντικείμενο συγκεκριμένου τύπου. Ανεβαίνει όλη την ιεραρχία και ψάχνει μέχρι να το βρει. Στο παράδειγμα το χρησιμοποίησα για να δω αν πας να συγκρίνεις δύο ίδαι αντικείμενα. Αν πχ. έχεις

 

>
String s = "hey";

 

και κάνεις

 

>
truck.equals(s)

 

τότε το instanceof θα επιστρέψει false αφού το s δεν είναι ίδιου τύπου με το truck. Το ένα είναι String και το άλλο είναι Truck.

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...