Inhaltsverzeichnis:
Video: Objektorientierte Programmierung in Java | 10. Tutorial 2024
Java ist objektorientiert. Was bedeutet das? Im Gegensatz zu Sprachen wie FORTRAN, die sich darauf konzentrieren, dem Computer zwingende "Do this / Do that" -Befehle zu geben, konzentrieren sich objektorientierte Sprachen auf Daten. Natürlich teilen objektorientierte Programme dem Computer noch mit, was zu tun ist. Sie beginnen jedoch, indem sie die Daten organisieren, und die Befehle kommen später.
Objektorientierte Sprachen sind besser als "Do this / Do that" -Sprachen, weil sie Daten so organisieren, dass Menschen damit alle möglichen Dinge tun können. Um die Daten zu ändern, können Sie auf dem aufbauen, was Sie bereits haben, anstatt alles, was Sie getan haben, zu verschrotten und jedes Mal neu zu beginnen, wenn Sie etwas Neues machen müssen. Obwohl Computerprogrammierer im Allgemeinen kluge Leute sind, brauchten sie eine Weile, um dies herauszufinden.
Objekte und ihre Klassen
In einer objektorientierten Sprache verwenden Sie die Objekte und , um Ihre Daten zu organisieren.
Stellen Sie sich vor, Sie schreiben ein Computerprogramm, um die Häuser in einer neuen Wohnanlage (noch im Bau) zu verfolgen. Die Häuser unterscheiden sich nur geringfügig voneinander. Jedes Haus hat eine unverwechselbare Außenfarbe, eine Innenfarbe, einen Küchenschrank und so weiter. In Ihrem objektorientierten Computerprogramm ist jedes Haus ein Objekt.
Aber Objekte sind nicht die ganze Geschichte. Obwohl sich die Häuser leicht voneinander unterscheiden, teilen sich alle Häuser die gleiche Merkmalsliste. Zum Beispiel hat jedes Haus eine Eigenschaft, die als -Seitenfarbe bekannt ist. Jedes Haus hat eine andere Eigenschaft, die als Küchenschrank bekannt ist. In Ihrem objektorientierten Programm benötigen Sie eine Hauptliste, die alle Merkmale enthält, die ein Hausobjekt besitzen kann. Diese Hauptmerkmalsliste wird als -Klasse bezeichnet.
Da hast du es. Objektorientierte Programmierung ist falsch benannt. Es sollte wirklich "Programmierung mit Klassen und Objekten genannt werden. "
Beachten Sie, dass das Wort Klassen zuerst aufgeführt wurde. Denken Sie noch einmal an eine im Bau befindliche Wohnanlage. Irgendwo auf dem Parkplatz, in einem wackeligen Wohnwagen, der auf nacktem Boden geparkt ist, befindet sich eine Hauptliste von Eigenschaften, die als Blaupause bekannt sind. Der Entwurf eines Architekten ist wie eine Klasse eines objektorientierten Programmierers. Eine Blaupause ist eine Liste von Eigenschaften, die jedes Haus haben wird. Die Blaupause sagt: "Abstellgleis. "Das eigentliche Hausobjekt hat eine graue Fassade. Die Blaupause sagt: "Küchenschrank. "Das eigentliche Hausobjekt hat Küchenschränke von Louis XIV.
Ein Jahr, nachdem Sie den Bauplan erstellt haben, verwenden Sie diesen, um zehn Häuser zu erstellen. Das gleiche gilt für Klassen und Objekte. Zuerst schreibt der Programmierer Code, um eine Klasse zu beschreiben. Wenn das Programm ausgeführt wird, erstellt der Computer dann Objekte aus der Klasse (Blaupause).
Das ist die wirkliche Beziehung zwischen Klassen und Objekten. Der Programmierer definiert eine Klasse und aus der Klassendefinition erzeugt der Computer individuelle Objekte.
Was ist so gut an einer objektorientierten Sprache?
Stellen Sie sich vor, Sie haben bereits ein Computerprogramm geschrieben, um die Bauanleitungen für Häuser in einer neuen Entwicklung zu verfolgen. Dann entscheidet der große Chef über einen modifizierten Plan - ein Plan, bei dem die Hälfte der Häuser drei Schlafzimmer hat und die andere Hälfte vier.
Wenn Sie den alten FORTRAN / C-Stil der Computerprogrammierung verwenden, sehen Ihre Anweisungen wie folgt aus:
Graben Sie einen Graben für den Keller.
Legen Sie Beton um die Seiten des Grabens.
Legen Sie zwei-mal-vier an den Seiten des Rahmens des Untergeschosses an.
…
Dies wäre wie ein Architekt, der eine lange Liste von Anweisungen anstelle eines Bauplans erstellt. Um den Plan zu ändern, müssen Sie die Liste durchgehen, um die Anweisungen zum Erstellen von Schlafzimmern zu finden. Um die Dinge noch schlimmer zu machen, könnten die Anweisungen auf den Seiten 234, 394-410, 739, 10 und 2 verstreut sein. Wenn der Erbauer die komplizierten Anweisungen anderer Leute entziffern müßte, wäre die Aufgabe zehnmal schwerer.
Mit einer Klasse zu beginnen, ist jedoch wie mit einer Blaupause zu beginnen. Wenn Sie sich für ein Haus mit drei oder vier Schlafzimmern entscheiden, können Sie mit einem Bauplan mit dem Namen Haus anfangen, der ein Erdgeschoss und einen zweiten Stock hat, aber keine Innenwände im zweiten Stock hat… Dann machen Sie zwei weitere Blaupausen im zweiten Stock - einen für das Haus mit drei Schlafzimmern und einen weiteren für das Haus mit vier Schlafzimmern. (Sie nennen diese neuen Entwürfe den Entwurf mit drei Schlafzimmern und den Entwurf mit vier Schlafzimmern .)
Ihre Baukollegen sind erstaunt über Ihren Sinn für Logik und Organisation, aber sie haben Bedenken. Sie stellen eine Frage. "Sie haben einen der Baupläne als die" Drei-Zimmer-Haus "-Blaupause bezeichnet. Wie können Sie das tun, wenn es eine Blaupause für einen zweiten Stock und nicht für ein ganzes Haus ist? "
Sie lächeln wissend und antworten:" Die Bauplanung mit drei Schlafzimmern kann sagen: "Informationen zu den unteren Stockwerken finden Sie in der ursprünglichen Bauplanung. "Auf diese Weise beschreibt der Bauplan mit drei Schlafzimmern ein ganzes Haus. Der Bauplan mit vier Schlafzimmern kann dasselbe sagen. Mit diesem Setup können wir die gesamte Arbeit, die wir bereits geleistet haben, nutzen, um den ursprünglichen Bauplan zu erstellen und viel Geld zu sparen. "
In der Sprache der objektorientierten Programmierung haben die Hausklassen mit drei oder vier Schlafzimmern die Eigenschaften der ursprünglichen Hausklasse ererbt. Sie können auch sagen, dass die Hausklassen mit drei oder vier Schlafzimmern sind und die ursprüngliche Hausklasse erweitern.
Die ursprüngliche Hausklasse wird als Oberklasse der Hausklassen mit drei oder vier Schlafzimmern bezeichnet.In diesem Sinne sind die Hausklassen mit drei oder vier Schlafzimmern Unterklassen der ursprünglichen Hausklasse. Anders ausgedrückt heißt die ursprüngliche Hausklasse die Elternklasse von Hausklassen mit drei oder vier Schlafzimmern. Die Hausklassen mit drei oder vier Schlafzimmern sind Kinderklassen der ursprünglichen Hausklasse.
Unnötig zu sagen, sind Ihre Baukollegen eifersüchtig. Eine Menge von Baumeistern ist um dich herum, um von deinen großartigen Ideen zu hören. In diesem Moment fallen Sie also eine weitere Bombe ab: "Indem wir eine Klasse mit Unterklassen erstellen, können wir die Blaupause in Zukunft wiederverwenden. Wenn jemand kommt und ein Haus mit fünf Schlafzimmern wünscht, können wir unseren ursprünglichen Hausentwurf verlängern, indem wir einen Hausentwurf mit fünf Schlafzimmern bilden. Wir werden nie wieder Geld für eine originelle Hausvorlage ausgeben müssen. "
" Aber ", sagt ein Kollege in der hinteren Reihe," was passiert, wenn jemand ein anderes Design im ersten Stock wünscht? Verschwenden wir die ursprüngliche Bauplanung oder fangen wir an, über die ursprüngliche Bauplanung zu scribbeln? Das kostet viel Geld, nicht wahr? "
In einem selbstbewussten Tonfall antworten Sie:" Wir müssen uns nicht mit der ursprünglichen Hausvorlage herumschlagen. Wenn jemand einen Jacuzzi in seinem Wohnzimmer wünscht, können wir eine neue, kleine Blaupause machen, die nur das neue Wohnzimmer beschreibt, und dies die Jacuzzi-im-Wohnzimmer-Haus Blaupause nennen. Dann kann diese neue Blaupause sich auf die ursprüngliche Haus-Blaupause für Informationen über den Rest des Hauses beziehen (der Teil, der nicht im Wohnzimmer ist). "In der Sprache der objektorientierten Programmierung erstreckt sich der Bauplan des Jacuzzi-im-Wohnzimmer-Hauses immer noch auf die originale Hausvorlage. Der Jacuzzi Blueprint ist immer noch eine Unterklasse des ursprünglichen Bauplans. In der Tat gilt die gesamte Terminologie über Superklasse, Elternklasse und Kindklasse immer noch. Das einzige, was neu ist, ist, dass die Jacuzzi-Blaupause die Wohnzimmer-Features in der originalen Haus-Blaupause übersteuert. In den Tagen vor den objektorientierten Sprachen erlebte die Programmierwelt eine Krise in der Softwareentwicklung. Programmierer schrieben Code, entdeckten dann neue Bedürfnisse und mussten dann ihren Code entschlüsseln und bei Null anfangen. Das passierte immer wieder, weil der Code, den die Programmierer geschrieben hatten, nicht wiederverwendet werden konnte. Die objektorientierte Programmierung hat das alles zum Besseren verändert.