Die zwei Instanzvariablen können private
gemacht werden.
Hier ist eine überarbeitete Version des Programms.
Jetzt sind MeinPunkt
-Objekte unveränderbar, da selbst mit einer
Referenz die Methoden das Objekt nicht ändern können.
class UnveraenderbarerPunkt { private int x, y; public UnveraenderbarerPunkt( int px, int py ) { x = px; y = py; } public void ausgeben() { System.out.println("x = " + x + "; y = " + y ); } } class PunktPrinter { public void print( UnveraenderbarerPunkt p ) { p.ausgeben(); p.x = 77 ; // FALSCH! das können Sie nicht tun } } class PunktTester { public static void main ( String[] args ) { UnveraenderbarerPunkt pt = new UnveraenderbarerPunkt( 4, 8 ); pt.ausgeben(); pt.x = 88; // FALSCH! das können Sie nicht tun PunktPrinter pprinter = new PunktPrinter(); pprinter.print( pt ); } }
Da UnveraenderbarerPunkt
-Objekte unveränderbar sind,
wird ein Konstruktor benötigt, um die Instanzvariablen mit
ihren permanenten Werten zu initialisieren.