Vergleichen Sie zwei Objekte mit dem Operator .equals () und ==

Ich habe eine Klasse mit einer gebautString Feld. Dann habe ich zwei Objekte erstellt und ich muss sie mit vergleichen== Betreiber und.equals() auch. Folgendes habe ich getan:

public class MyClass {

    String a;

    public MyClass(String ab) {
        a = ab;
    }

    public boolean equals(Object object2) {
        if(a == object2) { 
            return true;
        }
        else return false;
    }

    public boolean equals2(Object object2) {
        if(a.equals(object2)) {
            return true;
        }
        else return false;
    }



    public static void main(String[] args) {

        MyClass object1 = new MyClass("test");
        MyClass object2 = new MyClass("test");

        object1.equals(object2);
        System.out.println(object1.equals(object2));

        object1.equals2(object2);
        System.out.println(object1.equals2(object2));
    }


}

Nach dem Kompilieren wird als Ergebnis zweimal false angezeigt. Warum ist es falsch, wenn die beiden Objekte die gleichen Felder haben - "Test"?

Antworten auf die Frage(16)

Ihre Antwort auf die Frage