Wofür braucht man Klassen bei Programmiersprachen?

5 Antworten

Eine Klasse bildet zum einen den Typ für Objekte, welche dann eigenständig im oder als Programm agieren können, zum anderen können sie in statischer / globaler Ausführung auch unmittelbar eingesetzt werden.

Klassen bilden mit ihren Methoden und Eigenschaften reelle Dinge oder Problemlösungen als Einheiten ab, welche mit anderen Einheiten kommunizieren, Zustände haben und auf diese Weise die Realität besser oder anders im Programm abbilden als z.B. rein imperative Konzepte, welche einen Befehl nach dem anderen ausführen. Eine Klasse abstrahiert somit von der grundlegenden Befehlsarchitektur und ermöglicht bessere Lösungskonzepte in der Programmierung.

Woher ich das weiß:eigene Erfahrung – Hobby und teilweise beruflich

Sind die Bauanleitungen für den Compiler um Objekt orientierte Programmier Paradigmen zu realisieren . Wir können als Mensch halt sehr gut mit Dingen Abstrahieren . Und von einem oder mehreren Klassen als Grundlage andere Objekte erstellen . Bzw auch die Dinge auseinander halten .

Haus -> Haus mit 10 stockwerken -> Haus mit 10 Stockwerken und Garage

Auto -> Auto mit 4 Türen

Garage -> Garage mit 11 Parkplätzen : Auto mit 4 Türen ist in Garage auf Parkplatz 11.

Der Übersichtlichkeit halber.

Bei den meisten objektorientierten Sprachen hast du keine andere Wahl sie zu nutzen, sonst kannst du kein lauffähiges Programm schreiben. Sie sind also essentiell und enthalten die "Blaupausen" für die zu initiierenden Objekte.

WamboomBam  30.12.2020, 10:22

Das klang jetzt wie aus einem Lehrbuch diese Blaupausen Vergleich.

Es gibt noch einen Vergleich mit Schablonen die die Objekte stanzen.

0
TechPech1984  30.12.2020, 10:24
@WamboomBam

Naja , ist halt nur eine Bauanleitung :) Schablone , hmm , nicht wirklich , weil das wird ja nicht so eins zu eins in den speicher gelegt :) Sondern viel mit Vererbung etc . Also Bauanleitungen zusammenführen etc .

0
WamboomBam  30.12.2020, 10:25
@TechPech1984

Das ist nicht mein Vergleich. Ich habe das aber mal in einem Buch gelesen dass die Klasse die Schablone des Objekts ist. Erst zur runtime wird das Objekt gestanzt (erzeugt) . So war der Vergleich aber ich kann dir nicht sagen welches Buch das war. Ich habe soviele darüber gelesen

0

Klassen haben sich als fürs Programmieren ganz besonders hilfreich erwiesen:

Mühelos objektorientiert programmieren kann man nur mit Programmiersprachen, die ein entsprechendes Klassenkonzept unterstützen.

Bevor sog. objektorientiertes Programmieren erfunden wurde, gab es in Programmiersprachen nur zwei Namensräume: den globalen einerseits und die prozedurlokalen andererseits. Es konnte deswegen z.B. kein Programm zwei Funktionen oder Prozeduren gleichen Namens enthalten. Das hat sich als extrem unpraktisch erwiesen, nachdem sich die Notwendigkeit ergab, immer noch umfangreichere Programme zu schreiben.

In objektorientierter Programmierung bildet das Innere jeden Objekts (= die das Objekt implementierende, oft nur kleine Menge Code) ein eigenen Namensraum.

Klassen sind Muster, nach denen solche Namensräume bevölkert werden mit Konstanten, Variablen und Methoden. Jede Methode imlementiert der Klasse zugeordnete Funktionalität. Wo man sich die Methode vorstellt als einem Objekt der Klasse, hat sie einen zusätzlichen - implizit gegebenen - Parameter, dessen Wert immer das Objekt selbst ist.

grtgrt  30.12.2020, 12:18

Korrektur: ... Wo man sich die Methode vorstellt als einem Objekt der Klasse zugeordnet, hat sie einen zusätzlichen – implizit gegebenen – Parameter, dessen Wert immer das Objekt selbst ist. Seine Struktur ist die der Klasse (weswegen Klassen als Bauplan für Objekte zu sehen sind: Klassen dokumentieren Objektstruktur).

0
grtgrt  01.01.2021, 08:53

Wo man sich die Methode vorstellt als einem Objekt der Klasse zugeordnet, hat sie einen zusätzlichen - implizit gegebenen - Parameter, der immer das Objekt selbst ist. Sie kann deswegen den Wert des Objekts modifizieren.

0

Naja dass die Sachen halt übersichtlicher sind...

Woher ich das weiß:eigene Erfahrung – Mein Hobby ist PC!
TechPech1984  30.12.2020, 10:22

lol , ne dafür wurde das nicht gemacht . kommt einen nur so vor .

0
regex9  30.12.2020, 16:55
@TechPech1984

Seine Aussage ist richtig, deine ist falsch. Den Programmcode besser zu strukturieren, ist auf jeden Fall ein zentrales Thema der OOP und Klassen sind ein Hilfsmittel dafür. Der Code wird kontextuell besser geordnet, globale Variablen weitestgehend vermieden und doppelter Code eingespart.

1