npublic class Name
implements Comparable {
n private String fName,
lName;
n public Name(String fName, String
lName) {
n if(fName==null || lName==null)
throw new NullPointerException();
n this.fName = fName; this.lName
= lName; }
n public String fName(){ return
fName; }
n public String lName(){ return
lName; }
n public boolean
equals(Object o) { // (equals, hasCode) compatíveis
n if ( !(o instancede Name) )
return false;
n Name n = (Name)o;
n return n.fName.equals(fName)
&& n.lName.equals(lName);
n }
n public int hashCode(){return
31*fName.hashCode()+lName.hashCode();}
n public String toString()
{return fName + " " + lName;}
n public int
compareTo(Object o) {
n Name n = (Name)o; int lastCmp
= lName.compareTo(n.lName);
n return (lastCmp!=0 ? lastCmp :
fName.compareTo(n.fName));
n }
n}