Figure 6: Implements class relationships via handles

// EmployeeTest6.java
class Employee {
    private String last;
    private String first;
    private String title;
    private int age;
    private Department dept;

    public Employee() {}
    public Employee(String last, String first,
                    String title, int age)
    {
        this.last = last;
        this.first = first;
        this.title = title;
        this.age = age;
    }
    // not shown: get/set functions for members last, first, 
    // title, and age; and toString() -- same as before
    // ...

    public Department getDepartment() {
        return dept;
    }
    public void setDepartment(Department dept) {
        this.dept = dept;
    }
    public String toString() {
        return "{" + last + "," + first + 
               "," + title+ "," + age + "}";
    }
}

class Department {
    private String name;
    private Employee mgr;

    public Department(String name) {
        this.name = name;
    }
    public String getName() {
        return name;
    }
    public Employee getManager() {
        return mgr;
    }
    public void setName(String name) {
        this.name = name;
    }
    public void setManager(Employee mgr) {
        this.mgr = mgr;
    }
    public String toString() {
        return name;
    }
}

public class EmployeeTest6 {
    public static void main(String[] args)
    {
        // Create Objects
        Employee e = 
            new Employee("Malone", "Karl", "Forward", 36);
        Employee mgr = 
            new Employee("Sloan", "Larry", "Coach", 52);
        Department dept = new Department("Utah Jazz");

        // Establish Relationships
        dept.setManager(mgr);
        e.setDepartment(dept);
        mgr.setDepartment(dept);

        // Print Karl's Department and manager:
        Department d = e.getDepartment();
        System.out.println("Karl's department: " + d);
        Employee m = d.getManager();
        System.out.println("Karl's manager: " + m);
    }
}

/* Output:
Karl's department: Utah Jazz
Karl's manager: {Sloan,Larry,Coach,52}
*/