/*
 * "Grundkurs Programmieren in Java - Band 1 (4. Auflage, 2007)"
 * 2001-2007, Carl Hanser Verlag
 * Loesungsvorschlag zu Aufgabe 10.12 (Version 4.0)
 * (c) 2001-2007 D. Ratz, J. Scheffler, D. Seese, J. Wiesenberger
 *
 */

public class Patient {

  public String name;                 // Name des Patienten
  public int alter;                   // Alter in Jahren

  public Patient vorherDran = null;   // Vorgaenger in der Warteliste
  private int nummer;                 // Nummer in der Warteliste
  private static int folgeNummer = 1; // Naechste Nummer

  public Patient (String name, int alter) {
    this.name = name;
    this.alter = alter;
    nummer = folgeNummer++;
  }

  public Patient (String name, int alter, Patient vorherDran) {
    this.name = name;
    this.alter = alter;
    this.vorherDran = vorherDran;
    nummer = folgeNummer++;
  }

  public int altersDifferenz (int alter) {
    return Math.abs(alter - this.alter);
  }
 
  public boolean istErster () {
    return (vorherDran == null);
  }
  
  public String toString () {
    String printText = name + " (" + nummer + ")";
    if (vorherDran != null)
      printText = printText + " kommt nach " + vorherDran;
    return printText;  
  }
  
  public int nr () {
    return nummer;
  }
  public int folgeNr () {
    return folgeNummer;
  }

  public static void main (String[] args) {

    Patient maier  = new Patient("H. Maier", 68);
    Patient schmid = new Patient("G. Schmid", 45, maier);
    Patient berger = new Patient("I. Berger", 36, schmid);

    System.out.println(maier);
    System.out.println(schmid);
    System.out.println(berger);

  }

}

