Frage von webuser771, 72

Was bedeutet objektorientiertes programmieren in Java?

Habe versucht mich im Internet darüber schlau zu machen, bisher ohne Erfolg. Kann mir jemand versuchen kurz zu erklären was das ist und wobei es sich dort handelt ? Was kann man damit erreichen ?

Antwort
von grtgrt, 36

Jedes vor 1980 entstandene Programm war 

  • eine Menge von Variablen, deren jede man auffassen konnte als Speicherplatz für genaue eine Zahl oder genau ein Zeichen (Byte).
  • ergänzt um eine Funktionen, die Zugriff auf alle die Variablen hatten.

Nennen wir das ein klassisches Programm.

Ein objektorientiertes Programm ist 

  • eine Menge von Klassen, deren jede Objekte gleichen Typs beschreibt.
  • Jedes Objekt in diesem Sinne ist ein klassisches Programm dahingegend verallgemeinert, dass seine Variablen als Wert nicht nur je eine Zahl oder je ein Zeichen enthalten können, sondern stattdessen sogar ein ganzes Objekt.
  • Anders als klassische Programme lassen solche Objekte sich auch dynamisch erzeugen.
  • Da es oft vorkommt, dass man eine Klasse N braucht, die sich nur leicht von einer schon vorhandenen Klasse V unterscheidet, gibt es ein sog. Vererbungsprinzip, was bedeutet: Man definiert N, indem man sagt, N sei wie V abgesehen von gewissen Ausnahmen, die man dann genau zu spezifizieren hat.

Damit man mit Klassen hinreichend einfach umgehen kann, wurden viele klassische Programmiersprachen erweitert mit dem Ziel, mit ihrer Hilfe nicht nur klassische, sondern auch objektorientierte Programme schreiben zu können. Auf diese Weise entstand z.B. aus C die Sprache C++.

Java ist ein Sprache, die sich insofern auszeichnet, als sie 

  • nur noch objektorientierte Programme zu schreiben gestattet
  • und alle in den ca. 25 Jahren vor ihrem Entstehen gemachten positiven und negativen Erfahrungen mit objektorientierten Ansätzen berücksichtigt: 
  • Java ist sozusagen die optimale objektorientierte Programmiersprache.  
Kommentar von ReiInDerTube123 ,

ehm Ja, find ich eigentlich sehr ausführlich.

Aber dein Fazit, dass "Java ist sozusagen die optimale objektorientierte Programmiersprache." find ich kann man nicht unbedingt so stehen lassen. Sie zeichnet sich zwar dadurch aus, dass man mit ihr ausschließlich objektorientiert programmieren kann, jedoch würde ich dadurch nicht sagen, dass es dadurch die "Optimale" ist.

Beispielsweise bei C++ gibt es auch für Klassen etwas sehr einzigartiges. Und das sind die Pointer. Außerdem könnte man bei C++ oder auch anderen objektorientierten Sprachen, fast ausschließlich objektorieniert arbeiten. Der Unterschied wäre dann nur, dass die "main" Funktion bei Java auch selbst noch in einer Klasse steht.

Kommentar von grtgrt ,

Wer jemals die Aufgabe hatte, riesige Mengen von C++ Code nachträglich zu verstehen (als jemand, der an ihrer Entstehung nicht beteiligt war), wird wissen, wie schwierig - bis fast unmöglich - das sein kann.

Eine entsprechende Menge Java-Code zu verstehen, ist deutlich einfacher.

Der Grund dafür: Java kennt keine Pointer - man hat sie ganz bewusst weggelassen, und wie sich zeigt, sind Objektreferenzen völlig ausreichend. 

Ähnliches gilt für die in C++ erlaubte Mehrfachvererbung.

Auch das Konzept der Interfaces ist in Java wirklich perfekt gelöst, in C++ aber nur im Ansatz vorhanden. 

Verglichen mit dem sehr aufgeräumten Java ist C++ eine Experimentierküche. Sie entstand, da man damals erst Erfahrung sammeln musste.

Keine passende Antwort gefunden?

Fragen Sie die Community

Weitere Fragen mit Antworten