Nehmen wir an, ich habe eine Dog
Klasse, die ein Feld private final int age
und eine Methode public Dog ageBy(Time time)
hat, die jedes Mal neue Instanz des Hundes zurückgibt. A Dog
Klasse ist nicht nur unveränderlich, hat aber keine get
Methoden, um sein Alter zurückzugeben, in anderen Worten Hund Vertrag erlaubt es ihm nicht zu sagen, sein Alter (warum? Denn es gibt keine sprechenden Hunde), er kann nur "bellen ',' schlaf 'und mache die Sachen anderer Hunde.Wie implementiert man gleich, ohne die Felder zu exponieren?
Aber Dog
kann mit anderen Hunden nach Alter verglichen werden. Um dies zu tun, muss ich public equals(Object o)
Methode in Dog
Klasse überschreiben. Aber das Problem ist, dass es keine Möglichkeit gibt, es zu vergleichen, weil ich nicht auf passierte Hunde zugreifen kann.
Frage: Wie man Equals-Methode implementieren, ohne irgendwelche Felder des Objekts auszusetzen?
Alle 'dog' Instanzen haben Zugriff auf die' private' Felder anderer 'dog' Instanzen. – resueman
Danke, das wusste ich nicht :) –