/***************************************************************/
/* Prof. Dr. Carsten Vogt                                      */
/* FH Koeln, Fak. 07 / Nachrichtentechnik                      */
/* http://www.nt.fh-koeln.de/vogt                              */
/*                                                             */
/* Das Programm zeigt die Benutzung selbstprogrammierter Kon-  */
/* struktoren. Es zeigt auch die Ueberladung von Konstruktoren.*/
/***************************************************************/

import java.io.*;

class Konto {

 String inhaber;
 double stand;
 boolean gesperrt;

 /* Konstruktor, der implizit die Operationen des Standardkonstruktors ausfuehrt,
    also 'inhaber' auf null setzt, 'stand' auf 0 und 'gesperrt' auf false.
    Dieser Konstruktor ersetzt damit also gewissermassen den Standardkonstruktor.
    Das ist erforderlich, da das System einen Standardkonstruktor nur dann
    bereitstellt, wenn keine selbstprogrammierten Konstruktoren vorhanden sind.*/

 Konto() {  }

 /* Konstruktor, der nur 'inhaber' mit einem uebergebenen Wert initialisiert.
    'stand' wird standardmaessig auf 0 gesetzt, 'gesperrt' auf false . */ 

 Konto(String inhaber) {
  this.inhaber = inhaber;
 }

 /* Konstruktor, der 'inhaber' und 'stand' mit uebergebenen Werten initialisiert.
    'gesperrt' wird standardmaessig auf false gesetzt. */ 

 Konto(String inhaber, double stand) {
  this(inhaber); /* Aufruf des Konstruktors Konto(String inh) */
  this.stand = stand;
 }

 /* Konstruktor, der alle Attribute mit uebergebenen Werten initialisiert. */ 

 Konto(String inhaber, double stand, boolean gesperrt) {
  this(inhaber, stand); /* Aufruf des Konstruktors Konto(String inh, double st) */
  this.gesperrt = gesperrt;
 }

}

public class Konstruktoren {

 public static void main(String args[]) {

  Konto konto1, konto2, konto3, konto4;

  konto1 = new Konto();

  konto2 = new Konto(new String("Meier"));

  konto3 = new Konto(new String("Mueller"), 100.0);

  konto4 = new Konto(new String("Schmitz"), 200.0, true);

  System.out.println();
  System.out.println("Anfangswerte des Objekts von konto1:");
  System.out.println(" inhaber = " + konto1.inhaber);
  System.out.println(" stand = " + konto1.stand);
  System.out.println(" gesperrt = " + konto1.gesperrt);

  System.out.println();
  System.out.println("Anfangswerte des Objekts von konto2:");
  System.out.println(" inhaber = " + konto2.inhaber);
  System.out.println(" stand = " + konto2.stand);
  System.out.println(" gesperrt = " + konto2.gesperrt);

  System.out.println();
  System.out.println("Anfangswerte des Objekts von konto3:");
  System.out.println(" inhaber = " + konto3.inhaber);
  System.out.println(" stand = " + konto3.stand);
  System.out.println(" gesperrt = " + konto3.gesperrt);

  System.out.println();
  System.out.println("Anfangswerte des Objekts von konto4:");
  System.out.println(" inhaber = " + konto4.inhaber);
  System.out.println(" stand = " + konto4.stand);
  System.out.println(" gesperrt = " + konto4.gesperrt);

 }

}

