Javaschubla.de - Java als erste Programmiersprache
Java ist eine objektorientierte Sprache, wie ein Großteil der neueren Programmiersprachen. Aber was ist überhaupt ein Objekt? "Ein Objekt ist eine Instanz einer Klasse" hilft einem auch nicht gerade weiter. Erst einmal ist zu klären, was eine Klasse eigentlich genau ist, obwohl wir ja schon einige Klassen benutzt und selbst erstellt haben.
Klassen sind Datenstrukturen, die einerseits Variablen, zusätzlich aber auch gleich Funktionen enthalten, die diese Daten manipulieren können. Solche "Elementfunktionen" heißen Methoden.
Ein Objekt ist eine Instanz (engl. instance) einer Klasse. Instanz ist eigentlich keine gute Übersetzung für instance, was eher Beispiel, Vorkommen oder eingetretener Fall bedeutet. Es wird aber in allen deutschen Javabüchern und Objektorientierungsbüchern so benutzt.
Beispiel: Die Klasse Hund ist quasi der Hund an sich, nicht ein konkreter Hund. Jeder einzelne herumlaufende Hund ist ein Hund-Objekt, eine Instanz der Klasse Hund.
Die Klasse Hund hat Variablen wie Felllänge und letztes-Impf-Datum. Ein konkretes Hund-Objekt hat dann z.B. die Felllänge "Kurzhaar" und ein letztes-Impf-Datum 13.05.2004.
Es macht keinen Sinn die Variable "Felllänge" oder "letztes-Impf-Datum" für die Klasse Hund an sich zu betrachten, sie ist ja bei jedem Hund anders.
Die Klasse Hund hat Methoden wie impfen(). Wenn man die auf ein konkretes Hund-Objekt ausführt, ändert sich seine Variable letztes-Impf-Datum, sie wird auf den heutigen Tag gesetzt.
Es macht keinen Sinn, diese Methode auf die Klasse Hund an sich anzuwenden. Das würde nicht mal bedeuten, dass alle existierenem Hunde an diesem Tag geimpft werden. Es müsste irgendwie die Klasse verändern. (Das gibt es auch, in Java sind solche Variablen und Methoden static.)
Es könnte sich um ein Tierarztprogramm handeln, in dem alle Tiere mit ihrem Namen, Besitzer und Eigenschaften gespeichert sind, die zum Teil gelegentlich auch geändert werden, z.B. eben wenn der Hund geimpt wird.
In der nächsten Lektion, Objektorientierung 2, wird es etwas konkreter.