Nehmen wir an, Sie möchten eine Familie von Dingen beschreiben, die alle dieselben Eigenschaften haben, aber vielleicht unterschiedliche Namen, Farben oder andere kosmetische Unterschiede aufweisen.
Sie wollen zum Beispiel die Fahrzeuge beschreiben, die eine Familie in der Garage hat. Zu jedem Fahrzeug gibt es Attribute, die für Sie von Interesse sind:
- Welches ist das Modell und das Jahr des jeweiligen Fahrzeugs?
- Wie viele Räder hat ein Fahrzeug?
- Wer sind die Menschen, die ein bestimmtes Fahrzeug fahren?
In diesem Fall könnten Sie einen Satz von zwei Fahrzeugen haben, so dass Folgendes zutrifft:
Vehicle A's Model is a Toyota.
Vehicle A's Year is 2001.
Vehicle A has four Wheels
Vehicle A is driven by Mom, Dad, and Junior
Vehicle B is a Moto Guzzi
Vehicle B was made in 2004
Vehicle B has two wheels
Vehicle B is driven by Dad
In verschiedenen Sprachen könnte man die beiden Beispiele ganz grob auf die folgende Weise wiedergeben:
A = new Vehicle();
A.model = "Toyota";
A.year = 2002;
A.wheelCount = 4;
A.drivers = [ "Mom", "Dad", "Junior" ];
B = new Vehicle();
B.model = "Moto Guzzi";
B.year = 2004;
B.wheelCount = 2;
B.drivers = [ "Dad" ];
In OOP kapseln Sie die Attribute dieser Fahrzeuge, so dass Sie sie durch ihre Merkmale beschreiben können. Ihre Aufgabe ist es, Code zu schreiben, um die Werte dieser Merkmale abzurufen und zu setzen (sowie andere interessante Dinge mit diesen Merkmalen zu tun).
Außerdem können Sie "Unterklassen" bilden, um ein Objekt in verschiedenen Kontexten wiederzuverwenden. So können Sie z. B. spezifischere Fahrzeug-Objekttypen wie Auto und Motorrad verwenden, die ihre Merkmale von der Beschreibung von Fahrzeug erben:
A = new Car();
B = new Motorcycle();
Die Objekte Auto und Motorrad sind spezifischere Beschreibungen eines Fahrzeugs. Diese beiden Unterklassen können ihre eigenen speziellen Attribute haben. Ein Auto kann über Kindersicherungen verfügen, während ein Motorrad in der Regel keinen Bedarf für so etwas hat.
Anstatt das Attribut "Kindersicherung" für ein Fahrzeug zu setzen, können Sie sagen, dass nur ein Auto ein Schloss-Attribut hat. Dies macht Ihre Fahrzeugbeschreibung übersichtlicher und einfacher zu schreiben und zu pflegen.
0 Stimmen
Duplizieren: stackoverflow.com/questions/355796/
0 Stimmen
@hasen j - Das hatte ich nicht gesehen, aber hier gibt es einige gute Antworten.
0 Stimmen
Siehe auch: "Jargonfreier Vergleich von OOP vs. Procedural": stackoverflow.com/questions/1530868
0 Stimmen
Diese Frage scheint nicht zum Thema zu gehören, da sie nicht in den Rahmen der Diskussion fällt, wie sie im Hilfe-Center beschrieben ist.