2014-05-25 6 views
0

Je suis nouveau à java, et je me demandais quelle est la différence entre equales et ==, je sais que vous pouvez sur rouler equales, et vous ne pouvez pas overrdie ==, mais comment?Quelle est la différence entre equales et ==

Disons que j'ai des chiens de classe java, et si les chiens sont du même genre, je veux qu'ils soient égaux, comment puis-je le faire?

public class Dogs{ 
     private String dogKind; 

     public Dogs(String kind){ 
      this.dogKind = kind 
     } 

     public String getDogKind(){ 
      return this.dogKind; 
     } 
    } 

Alors où dans comment je redéfinir les équations?

+0

S'il vous plaît essayer de lire et de recherche en ligne avant de poser une question très basique – Gigalala

Répondre

0

Il suffit de lire simplement en ligne (Tant de bonnes réponses), et si vous ne comprenez pas:

Vous devez ajouter ceci dans la classe des chiens, tout simplement faire:

@Override 
    public boolean equals(Object obj) { 
     if (!obj instanceof Dogs){ 
      return false; 
     } 
     return this.dogKind.equals(((Dogs)obj).getDogKind()); 
    } 

La première partie fait en sorte que l'objet donné à la méthode n'est pas nul ou d'une classe différente.

La deuxième partie utilise simplement des chaînes égales, pour vérifier si les chaînes sont identiques ou non.

+0

aussi vous avez oublié hashcode – nikis

+0

vrai, le changement il dans une seconde – Gigalala

+0

qui jamais, a changé merci, je suis au milieu de changer moi-même: -) – Gigalala

Questions connexes