Play audio slide show -- Keyboard shortcut: 'x'  Back to slide -- Keyboard shortcut: 'u'        next  Play sound for this slide -- Keyboard shortcut: 'y'  Name.java - Et eksempel på definition af en naturlig ordning i en klasse Name.Lecture 11 - slide 24 : 35
Program 1

import java.util.*;

public class Name implements Comparable {
    private String  firstName, lastName;

    public Name(String firstName, String lastName) {
        if (firstName==null || lastName==null)
            throw new NullPointerException();
        this.firstName = firstName;
        this.lastName = lastName;
    }

    public int compareTo(Object o) {
        Name n = (Name)o;
        int lastCmp = lastName.compareTo(n.lastName);
        if (lastCmp == 0)
          return firstName.compareTo(n.firstName);
        else return lastCmp;
    }

    public String firstName()    {return firstName;}
    public String lastName()     {return lastName;}

    public boolean equals(Object o) {
        if (!(o instanceof Name))
            return false;
        Name n = (Name)o;
        return n.firstName.equals(firstName) &&
               n.lastName.equals(lastName);
    }

    public int hashCode() {
        return 31*firstName.hashCode() + lastName.hashCode();
    }

    public String toString() {return firstName + " " + lastName;}

}