PlusPedia wird derzeit technisch modernisiert. Aktuell laufen Wartungsarbeiten. Für etwaige Unannehmlichkeiten bitten wir um Entschuldigung; es sind aber alle Artikel zugänglich und Sie können PlusPedia genauso nutzen wie immer.

Neue User bitte dringend diese Hinweise lesen:

Anmeldung - E-Mail-Adresse Neue Benutzer benötigen ab sofort eine gültige Email-Adresse. Wenn keine Email ankommt, meldet Euch bitte unter NewU25@PlusPedia.de.

Hinweis zur Passwortsicherheit:
Bitte nutzen Sie Ihr PlusPedia-Passwort nur bei PlusPedia.
Wenn Sie Ihr PlusPedia-Passwort andernorts nutzen, ändern Sie es bitte DORT bis unsere Modernisierung abgeschlossen ist.
Überall wo es sensibel, sollte man generell immer unterschiedliche Passworte verwenden! Das gilt hier und im gesamten Internet.
Aus Gründen der Sicherheit (PlusPedia hatte bis 24.07.2025 kein SSL | https://)

Bei PlusPedia sind Sie sicher: – Wir verarbeiten keine personenbezogenen Daten, erlauben umfassend anonyme Mitarbeit und erfüllen die Datenschutz-Grundverordnung (DSGVO) vollumfänglich. Es haftet der Vorsitzende des Trägervereins.

PlusPedia blüht wieder auf als freundliches deutsches Lexikon.
Wir haben auf die neue Version 1.43.3 aktualisiert.
Wir haben SSL aktiviert.
Hier geht es zu den aktuellen Aktuelle Ereignissen

Objektorientierte Programmierung: Unterschied zwischen den Versionen

Aus PlusPedia
Zur Navigation springen Zur Suche springen
Fmrauch (Diskussion | Beiträge)
Klasse: Rechtschreibung, z.T. unlogisch
Fmrauch (Diskussion | Beiträge)
erstmal Pause von mir
 
(4 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
{{Inuse}}
Die '''objektorientierte Programmierung''' (kurz '''OOP''') ist ein Technik der [[Software]]entwicklung und eine [[Kategorie]] für [[Computerprogramm]]e bzw. [[Programmiersprache]]n. Die Grundidee besteht darin, den Aufbau der Software an den Grund[[struktur]]en und Objekten desjenigen Bereichs der Wirklichkeit auszurichten, der die gegebene Anwendung betrifft. Ein Modell dieser Strukturen wird in der [[Entwurf]]sphase aufgestellt. Die Umsetzung dieser Denkweise erfordert die Einführung verschiedener Konzepte, insbesondere die Unterscheidung von [[Klasse (Objektorientierung)|Klassen]], Attributen und Methoden. In [[Smalltalk-80 (Programmiersprache)|Smalltalk]] und in [[Python (Programmiersprache)|Python]] ist alles ein Objekt. Andere objektorientierte Programmiersprachen wie [[Java Programmiersprache|Java]], [[C++]] oder [[Delphi (Programmiersprache|Delphi]] ziehen dies nicht konsequent durch.
Die '''objektorientierte Programmierung''' (kurz '''OOP''') ist ein Technik der [[Software]]entwicklung und eine [[Kategorie]] für [[Computerprogramm]]e bzw. [[Programmiersprache]]n. Die Grundidee besteht darin, den Aufbau der Software an den Grund[[struktur]]en und Objekten desjenigen Bereichs der Wirklichkeit auszurichten, der die gegebene Anwendung betrifft. Ein Modell dieser Strukturen wird in der [[Entwurf]]sphase aufgestellt. Die Umsetzung dieser Denkweise erfordert die Einführung verschiedener Konzepte, insbesondere die Unterscheidung von [[Klasse (Objektorientierung)|Klassen]], Attributen und Methoden. In [[Smalltalk-80 (Programmiersprache)|Smalltalk]] und in [[Python (Programmiersprache)|Python]] ist alles ein Objekt. Andere objektorientierte Programmiersprachen wie [[Java Programmiersprache|Java]], [[C++]] oder [[Delphi (Programmiersprache|Delphi]] ziehen dies nicht konsequent durch.


== Begriffe ==
== Begriffe ==
=== Klasse ===
=== Klasse ===
Eine Klasse ist eine Schablone, aus der zur Laufzeit ein Objekt erzeugt wird (Instanzierung). Eine Klasse entspricht einem [[Abstrakter Datentyp|Abstrakten Datentyp]]. Über die Schnittstelle hinaus enthält die Klasse auch Methoden, die nicht nur beschreiben was der Datentyp enthält, sondern auch was man damit machen kann.
Zur besseren Verwaltung gleichartiger Objekte bedienen sich die meisten Programmiersprachen des Konzeptes der Klasse. Eine Klasse ist eine Schablone, aus der zur Laufzeit ein Objekt erzeugt wird (Instanzierung). Eine Klasse kann ein [[Datentyp]] sein. Darüber hinaus enthält die Klasse auch Methoden, die nicht nur beschreiben was der Datentyp enthält, sondern auch was man damit machen kann.


In Python ist selbst der Typ einer Variable ein Objekt.
In Python ist zum Beispiel der Typ einer Variable ein Objekt.


=== Attribute ===
=== Attribute ===
Attribute sind Daten der Klasse. Diese können ebenfalls komplexe Datentypen sein.
Attribute sind Eigenschaften der Objekte (Fenster, Schaltflächen, Laufleisten, Menüs, usw.) wie Farbe, Größe und Ausrichtung. In der Programmiersprache [[C#]] sind Attribute [[Metadaten]], die an ein Feld oder einen Codeblock wie Assemblys, öffentliche [[Variable (Programmierung)|Variablen]] und [[Datentyp]]en angehängt sind, und entsprechen Annotationen in Java.


=== Methoden ===
=== Methoden ===
Methoden sind im Prinzip Prozeduren und Funktionen, die mit den Daten arbeiten können.
Methoden sind im Prinzip Prozeduren und Funktionen, die mit den Objekten arbeiten können.


== Terminologie ==
== Terminologie ==

Aktuelle Version vom 30. Dezember 2024, 15:38 Uhr

Die objektorientierte Programmierung (kurz OOP) ist ein Technik der Softwareentwicklung und eine Kategorie für Computerprogramme bzw. Programmiersprachen. Die Grundidee besteht darin, den Aufbau der Software an den Grundstrukturen und Objekten desjenigen Bereichs der Wirklichkeit auszurichten, der die gegebene Anwendung betrifft. Ein Modell dieser Strukturen wird in der Entwurfsphase aufgestellt. Die Umsetzung dieser Denkweise erfordert die Einführung verschiedener Konzepte, insbesondere die Unterscheidung von Klassen, Attributen und Methoden. In Smalltalk und in Python ist alles ein Objekt. Andere objektorientierte Programmiersprachen wie Java, C++ oder Delphi ziehen dies nicht konsequent durch.

Begriffe

Klasse

Zur besseren Verwaltung gleichartiger Objekte bedienen sich die meisten Programmiersprachen des Konzeptes der Klasse. Eine Klasse ist eine Schablone, aus der zur Laufzeit ein Objekt erzeugt wird (Instanzierung). Eine Klasse kann ein Datentyp sein. Darüber hinaus enthält die Klasse auch Methoden, die nicht nur beschreiben was der Datentyp enthält, sondern auch was man damit machen kann.

In Python ist zum Beispiel der Typ einer Variable ein Objekt.

Attribute

Attribute sind Eigenschaften der Objekte (Fenster, Schaltflächen, Laufleisten, Menüs, usw.) wie Farbe, Größe und Ausrichtung. In der Programmiersprache C# sind Attribute Metadaten, die an ein Feld oder einen Codeblock wie Assemblys, öffentliche Variablen und Datentypen angehängt sind, und entsprechen Annotationen in Java.

Methoden

Methoden sind im Prinzip Prozeduren und Funktionen, die mit den Objekten arbeiten können.

Terminologie

Begriff B2 B3
Superklasse Basisklasse Oberklasse
Subklasse
Methode
Attribute
Exempar

Instanzen / Objekte

Aus einer Klasse (Schablone) kann eine Instanz / ein Objekt gebildet werden. Dieser Schritt wird instanzieren genannt.

Kapselung

Datenkapselung dient dazu, dass ein Objekt seine Daten vor der Außenwelt schützen kann.

Namensräume sind "Kapselung im Kleinen".

Attribute und Methoden können

Art UML Beschreibung
public (+) Auf diese Methode / dieses Attribut darf außerhalb der Klasse zugegriffen werden.
private (-) Auf diese Methode / dieses Attribut darf nur innerhalb der Klasse zugegriffen werden.
protected (#) Auf diese Methode / dieses Attribut darf innerhalb der Klasse und in spezialisierten (abgeleitete) Klassen verwendet werden.
package (~) Auf diese Methode / dieses Attribut darf innerhalb des Packages zugegriffen werden.

Das Ziel sollte sein, so viel wie möglich private zu deklarieren und so wenig wie nötig public.

Vererbung und Polymorphie

Klassen können von anderen Klassen abgeleitet werden (Vererbung). Vererbt werden die Daten und die Methoden. Die Methoden der abgeleiteten (spezialisierten) Klassen können überschrieben werden. Dieses Überschreiben wird Polymorphie genannt.

Vererbung ist sinnvoll, wenn Objekte konzeptionell aufeinander aufbauen.

Regeln

Ist-Ein
  • Ein Personenkraftwagen ist ein Kraftfahrzeug
  • Ein Kraftfahrzeug ist ein Fahrzeug
  • Ein Fahrzeug ist KEIN Personenkraftwgaen - es kann auch ein Fahrrad sein.
  • Ein Fahrzeug ist kein Sitz - und ein Sitz ist kein Fahrzeug:
Hat-Einen
  • Ein Personenkraftwagen hat einen Sitz

Mehrfachvererbung

Eine Klasse kann unter Umständen von mehreren Klassen erben. Dies führt auch zu einer gewissen Komplexität.

Beispiel:

  • Es gibt Landfahrzeuge
  • Es gibt Wasserfahrzeug
  • Ein Amphibienfahrzeug ist ein Landfahrzeug und ein Wasserfahrzeug

Eine Mehrfachvererbung gibt es in C++, Eiffel und in Python. In Java, Smalltalk und Ada gibt es keine Mehrfachvererbung.

Java, Delphi und c# bieten "Schnittstellen" an - damit kann die Mehrfachvererbung in einer eingeschränkten Form abgebildet werden.


Beispiele

Fahrezuge
  • Klasse CFahrzeug (Attribute: Höchstgeschwindigkeit, maximale Zuladung, Farbe - Methode: Fahren)
    • Klasse CKraftfahrzeug (Attribute: Art des Antriebs, Leistung - Methode: Starte_Motor)
      • Klasse CPersonenkraftwagen (Attribute: Anzahl der Sitzplätze)


Introspektion

  • Introspektion ist eine Reflixion (engl. reflection) - Ein Programm hat Erkenntnisse zu seiner eigenen Struktur
  • Zur Laufzeit kann abgefragt werden, welche Methoden eine Klasse hat - Welchen Typ hat eine Variable.

Klassenbibliothek

  • Eine Klassenbibliothek ist ein Modul.

Siehe auch

Weblinks

Literatur

Einzelnachweise


Vergleich zu Wikipedia