erstellt 15.07.06; bearbeitet 11.11.12; übersetzt: 13.03.25


Kapitel 53B Programmieraufgaben

1.   Wir prüfen die folgende Klasse Employee.

class Employee implements Comparable<Employee>
{
  private String firstName;
  private String lastName;

  private int birthYear;

  String getFirstName()  { return firstName; }
  String getLastName()   { return lastName; }
  int    getBirthYear()  { return birthYear; }

  public Employee( String first, String last, int year )
  {
    firstName = first; lastName = last; birthYear = year;
  }

  public String toString()
  {
    // do stuff ...
  }

  public int compareTo(Employee other)
  {
    // do stuff ...
  }

}

Wir vervollständigen die Methode compareTo(). Dabei werden alle drei Instanzvariablen verwendet. Der Zugriff auf diese Variablen erfolgt über die entsprechenden get() Methoden. Der Vergleich zweier Angestellter erfolgt indem wir zuerst ihre Nachnamen betrachten. Wenn die Nachnamen unterschiedlich sind, geben wir den Wert zurück, den Methode compareTo() von String zurückgibt.

Wenn die Nachnamen gleich sind, betrachten wir die Vornamen und geben den Wert zurück, den Methode compareTo() von String zurückgibt. Wenn auch die Vornamen gleich sind, geben wir die Differenz der Geburtsjahre zurück, so dass der ältere Mitarbeiter vor dem jüngeren steht.

Wir testen unsere Implementation mit der folgenden Klasse:

import java.util.Arrays;

class EmployeeTester
{
  public static void main(String[] args)
  {
    Employee[] workers = new Employee[12];

    workers[0] = new Employee( "Fred", "Adams",  1963);
    workers[1] = new Employee( "John", "Adams",  1959);
    workers[2] = new Employee( "Elmer", "Adams",  1976);
    workers[3] = new Employee( "Nancy", "Devon",  1963);
    workers[4] = new Employee( "Andrew", "Lewis",  1983);
    workers[5] = new Employee( "Douglas", "Page",  1981);
    workers[6] = new Employee( "Donald", "Wolder",  1963);
    workers[7] = new Employee( "Henry", "Wolder",  1972);
    workers[8] = new Employee( "Robert", "Wolder",  1959);
    workers[9] = new Employee( "Howard", "Cohen",  1933);
    workers[10] = new Employee( "Howard", "Cohen",  1958);
    workers[11] = new Employee( "Donald", "Rice",  1935);

    Arrays.sort( workers );

    for ( int j=0; j<workers.length; j++ )
      System.out.println( workers[j].toString() );
  }

}

Ende der Aufgaben


Zurück zum Inhaltsverzeichnis.