Lecture overview -- Keyboard shortcut: 'u'  Previous page: Lighed i Java -- Keyboard shortcut: 'p'  Next page: Emnet fortsættes i en efterfølgende lektion [Section] -- Keyboard shortcut: 'n'  Lecture notes - all slides and notes together  slide -- Keyboard shortcut: 't'  Help page about these notes  Alphabetic index  Course home  Play sound for this page -- Keyboard shortcut: 'y'  Page 26 : 27
Forelæsningsnoter i Objekt-orienteret Programmering
Objekt-orienteret programmering i Java, del 1
Mønster for equals i Java

Her viser vi en typisk redefinition af equals(Object other) i Java.

Redefinitioner af equals bør følge et bestemt mønster

class EqualsDemo {

    private int state; 

    public EqualsDemo (int state){
	this.state = state;
    }

    public boolean equals(Object other){
	int thisState = this.state;
        int otherState = ((EqualsDemo) other).state;
	if (other instanceof EqualsDemo)
	    return thisState == otherState;
        else return false;
   }

}

En equals metode fra klassen EqualsDemo som redefinerer equals fra Object. Bemærk if-then-else strukturen, som tester om other er af samme type som det nuværende objekt. Bemærk også at vi bliver nødt til at 'caste' other til EqualsDemo for at trække tilstanden ud af objektet. Bemærkt endelig, at vi kan tilgå state i other på trods af at state er private.