/***************************************************************/ /* Prof. Dr. Carsten Vogt */ /* TH Koeln, Fakultaet IME */ /* http://www.nt.th-koeln.de/vogt */ /* */ /* Das Programm demonstriert Operationen auf Objektvariablen. */ /***************************************************************/ import java.io.*; /* Definition einer Klasse fuer Bankkonten */ class Konto { String inhaber; double stand; boolean gesperrt; } public class ObjVarOp { public static void main(String args[]) { /* Deklaration und Initialisierung zweier Objektvariablen */ Konto meinKonto = new Konto(), deinKonto = new Konto(); meinKonto.inhaber = new String("Ich"); deinKonto.inhaber = new String("Du"); System.out.println(); System.out.println("Werte nach Initialisierung:"); System.out.println(); System.out.println(" meinKonto.inhaber = " + meinKonto.inhaber); System.out.println(" deinKonto.inhaber = " + deinKonto.inhaber); /* Vergleich der Objektvariablen, d.h. Test, ob sie auf dasselbe Objekt verweisen */ System.out.println(); if (meinKonto == deinKonto) System.out.println(" meinKonto und deinKonto verweisen auf dasselbe Objekt."); else System.out.println(" meinKonto und deinKonto verweisen auf verschiedene Objekte."); /* Zuweisung von meinKonto an deinKonto: Kopiert wird nicht der Objektinhalt, sondern der Objektverweis. deinKonto verweist also anschliessend auf dasselbe Objekt wie meinKonto. Das Objekt, auf das zuvor deinKonto verwiesen hatte, ist dann nicht mehr zugreifbar. */ deinKonto = meinKonto; System.out.println(); System.out.println("Nach der Zuweisung deinKonto = meinKonto:"); System.out.println(); if (meinKonto == deinKonto) System.out.println(" meinKonto und deinKonto verweisen auf dasselbe Objekt."); else System.out.println(" meinKonto und deinKonto verweisen verschiedene Objekte."); /* Das inhaber-Attribut des gemeinsamen Objekts wird geaendert: Zugriff ueber meinKonto.inhaber, damit aber auch Aenderung von deinKonto.inhaber. */ meinKonto.inhaber = new String("Wir"); System.out.println(); System.out.println("Werte nach Zuweisung meinKonto.inhaber = new String(\"Wir\"):"); System.out.println(); System.out.println(" meinKonto.inhaber = " + meinKonto.inhaber); System.out.println(" deinKonto.inhaber = " + deinKonto.inhaber); } }