© 2004 Pohlig - Taulien Klassen Objekte von Klassen erzeugen Grundkurs Informatik mit Java 1 © 2004 Pohlig - Taulien Modellieren mit OOP Alle konkreten Gegenstände und Sachverhalte, die der Mensch mit seinen Sinnen wahrnimmt, sind pure (Ab)bilder jener Urbilder und werden nur erkannt, indem sie als eben solche (Ab)bilder identifiziert werden nach Platon Alles was der Mensch wahrnimmt sind Objekte, also Instanzen von Klassen (=Ideen). Ein "java-sprechender" Platonschüler Grundkurs Informatik mit Java 2 © 2004 Pohlig - Taulien Klasse und Objekt Was sind Objekte? Konkretisierungen, Instanzen von Klassen Referenzen Mi ta rb e it e r Klasse: Punkt der Ebene Objekt: Konkreter Punkt P(2/4) Mitarbeiter() Mitarbeiter() Mitarbeiter-Objekt Mitarbeiter-Objekt ändern Name ändern Name Name Name Gehalt Gehalt ändern Gehalt Grundkurs Informatik mit Java ändern Gehalt 3 © 2004 Pohlig - Taulien Attribute einer Klasse Eigenschaften, die den Zustand eines Objekts beschreiben. Sie sind wie Variable, die Werte haben. Jedes nach einem Bauplan erzeugte Objekt hat seine „eigene“ Attribute. Punkte haben als Zustandsgrößen (Attribute) ihre Koordinaten, in den Objekte haben sie konkrete Werte Grundkurs Informatik mit Java 4 © 2004 Pohlig - Taulien Methoden einer Klasse Übergänge von Zuständen Werte abfragen, Werte setzen. Konstruktoren aus den Klassen Objekte erzeugen. Grundkurs Informatik mit Java 5 © 2004 Pohlig - Taulien Background new neue Instanz auf dem Heap Zähler für Instanzen einer Klasse Nicht mehr referenzierte Objekte werden vom Garbage Collector aufgespürt und zerstört, ihr Speicherplatz also wieder freigegeben. Garbage Cllector kann auch angestoßen werden: System.gc Grundkurs Informatik mit Java 6 © 2004 Pohlig - Taulien UML Unified Modeling Laguage Klassenname Attribute Konstruktoren und Methoden Grundkurs Informatik mit Java 7 © 2004 Pohlig - Taulien Die Klasse Punkt class Punkt { Konstruktoren (müssen den gleichen int x,y; Namen wie die Klasse haben! Es kann mehrere Konstruktoren geben) Punkt() { x=0; y=0; } Punkt(int xStartWert, int yStartWert) { x = xStartWert; Parameterliste ( Muss in Typen und y = yStartWert; Reihenfolge passen, lokale Variable) } void verschiebe(int dx, int dy) { x +=dx; y +=dy; Methode, die die Attribute (x und y) } der Klasse verändert. } Grundkurs Informatik mit Java 8 © 2004 Pohlig - Taulien Benutzen der Klasse public class Demo { Zugriff auf die nicht public static void main (String[] args) { versteckten Attribute x und y Punkt P1 = new Punkt(); Punkt P2 = new Punkt(3,65); System.out.println("x1="+P1.x+"y1="+P1.y); System.out.println("x2="+P2.x+"y2="+P2.y); P1.verschiebe(2,2); P2.verschiebe(2,2); System.out.println("x1="+P1.x+"y1="+P1.y); System.out.println("x2="+P2.x+"y2="+P2.y); Erzeugen von 2 } Aufruf der Methoden Verschieben Objekten mit zwei } der Objekte P1 und P2 (mit verschiedenen passender Parameterliste) Konstruktoren Grundkurs Informatik mit Java 9