Studium, Ausbildung und Beruf

web uni-protokolle.de
 powered by
NachrichtenLexikonProtokolleBücherForenDienstag, 12. November 2019 

Klasse (objektorientierte Programmierung)


Dieser Artikel von Wikipedia ist u.U. veraltet. Die neue Version gibt es hier.
Klasse ist in der objektorientierten Programmierung ein abstrakter Oberbegriff für die Beschreibung gemeinsamen Struktur und/oder des gemeinsamen Verhaltens von Objekten ( Klassifizierung ). Sie dient dazu Dinge (Objekte) der realen Welt zu abstrahieren . Im Zusammenspiel mit anderen Klassen ermöglichen die Modellierung eines abgegrenzten Systems der realen ( siehe Objektorientiertes Design).

Die Struktur einer Klasse bilden die Attribute (auch Eigenschaften ) das Verhalten die Methoden (auch Funktion Prozedur ) der Klasse.

Aus Klassen erzeugte Objekte werden als Exemplare oder Instanzen der Klasse bezeichnet.

In manchen Programmiersprachen gibt es zu Klasse ein bestimmtes Objekt (Klassenobjekt) das dazu ist die Klasse zur Laufzeit zu repräsentieren; Klassenobjekt ist dann auch zuständig für die von Objekten der Klasse und den Aufruf korrekten Methode.

Klassen können von anderen Klassen abgeleitet werden ( Vererbung ). Dabei erbt die Klasse die Datenstruktur Attribute ) und die Methoden von der vererbenden Klasse (Basisklasse). Die abgeleitete Klasse ( Subklasse ) kann Methoden der Basisklasse überschreiben (sofern diese es erlaubt; die Möglichkeit zu verbieten hängt von der Programmiersprache ab) die Methode neu implementieren und eigene Methoden und Daten ( Attribute ) hinzufügen. Ein Objekt der abgeleiteten Klasse überall verwendet werden wo ein Objekt der erwartet wird; überschriebene Methoden werden dann auf abgeleiteten Klasse ausgeführt ( Polymorphie ).

Klassen werden in der Regel in von Klassenbibliotheken zusammengefasst die häufig thematisch organisiert sind. können Anwender einer objektorientierten Programmiersprache Klassenbibliotheken erwerben den Zugriff auf Datenbanken ermöglichen.

Beispiele

Angenommen es wird eine Klasse für Tabelle einer einfachen Datenbank entworfen. Ein Objekt ist dann ein einzelner Datensatz ( = Zeile ) in dieser


Ein Klasse Bankkonto könnte beispielsweise mit folgenden Eigenschaften definiert
  • hat eine Kontonummer ( Attribut )
  • hat einen Kontoinhaber ( Referenz auf einen Kunden)
  • hat eine Liste von Buchungen ( Liste von Referenzen auf Buchungen)
  • hat einen Saldo (Attribut)
  • kann eine Einzahlung durchführen ( Methode )
  • kann eine Auszahlung durchführen (Methode)
Jede Kontobewegung würde dann einem Methodenaufruf und der Liste der Buchungen ein Element sowie den Saldo modifizieren.


Um eine Klasse "Schueler" zu erzeugen man verschiedene Eigenschaften definieren: Name Vorname Geburtstag Adresse.
Ein spezieller Schüler ist dann ein Objekt dieser Klasse wenn für ihn eine erzeugt wurde und wenn seine Daten in Instanzattribute eingetragen sind.

Programmbeispiel

Das folgende Beispiel ist in C++ geschrieben:

 class Basisklasse { public: virtual void { std::cout << "Basisklasse::machwas\n"; } };  

 class abgeleitete_Klasse : public Basisklasse { virtual void machwas() { std::cout << "abgeleitete_Klasse::machwas\n"; };  

 void mach_was_mit(Basisklasse& b) { b.machwas(); } 

 int main() { Basisklasse objekt1; abgeleitete_Klasse mach_was_mit(objekt1); mach_was_mit(objekt2); }  

Dieses Programm definiert eine Klasse Basisklasse und eine davon abgeleitete Klasse abgeleitete_Klasse .

Die Basisklasse hat eine Methode namens machwas() die Basisklasse::machwas ausgibt (dafür ist die Zeile mit std::cout zuständig). virtual bedeutet in C++ "kann überschrieben werden". macht die abgeleitete Klasse dann auch sie die Methode um so dass sie abgeleitete_Klasse::machwas ausgibt.

Anschließend folgt die Definition einer eigenständigen mach_was_mit(...) die ein Objekt der Basisklasse als bekommt. Auf diesem Objekt wird die Methode machwas() gerufen.

Schließlich folgt das Hauptprogramm das sowohl Objekt der Basisklasse ( objekt1 ) als auch der abgeleiteten Klasse ( objekt2 ) definiert und dann mach_was_mit(...) zuerst mit einem Objekt der Basisklasse mit einem Objekt der abgeleiteten Klasse aufruft.

Wird dieses Programm kompiliert und ausgeführt gibt es

 Basisklasse::machwas abgeleitete_Klasse::machwas  

aus obwohl die Funktion mach_was_mit(...) nur für ein Basisklassenobjekt als Argument definiert (in der Tat hätte die abgeleitete Klasse in einer später dazu gefügten Quelldatei geschrieben werden können nachdem die Funktion mach_was_mit(...) schon lange fertig kompiliert war). Dieses nennt man Polymorphie .

Einige Programmiersprachen mit Klassen




Bücher zum Thema Klasse (objektorientierte Programmierung)

Dieser Artikel von Wikipedia unterliegt der GNU FDL.

ImpressumLesezeichen setzenSeite versendenSeite drucken

HTML-Code zum Verweis auf diese Seite:
<a href="http://www.uni-protokolle.de/Lexikon/Klasse_%28Programmiersprache%29.html">Klasse (objektorientierte Programmierung) </a>