Es gibt 3 Eigenschaften , die uns den Grund geben, unsere eigenen Objekte zu verwenden, anstatt von den Funktionen, Bibliotheken und globalen Elementen abzuhängen, die uns die Sprache zur Verfügung stellt. Dies sind:
- Polymorphismus: Verwendung der gleichen Operationen in verschiedenen Objekten verschiedener Klassen.
- Kapselung: Versteckt das Objekt mit seinen Attributen vor externen Entitäten, damit es sie schützen kann.
- Vererbung : Erstellen Sie spezifischere Objekte, die die grundlegenden Methoden und Attribute einer allgemeineren Oberschicht erben.
Polymorphismus
Dieser Begriff bedeutet, dass er viele Formen hat. Dies bedeutet, dass wir Operationen ausführen können, die je nach Typ oder Klasse des Objekts unterschiedlich funktionieren. Nehmen wir ein einfaches Beispiel: Stellen Sie sich vor, wir haben einen Einkaufswagen. Dann definieren wir, wie wir die Daten des Preises und des gewünschten Produkts erhalten möchten. Das folgende Bild zeigt, wie wir ein Tupel erstellt haben.
Da es passieren würde, wenn die Funktionalität des Einkaufswagens erweitert würde und wir jetzt mit Auktionen arbeiten, sollten wir in gewisser Weise die Werte angeben, die empfangen werden sollen, und wie zu verfahren ist, wenn dieselben Methoden verwendet werden folgendes Formular ist jedoch nicht angebracht.
Wie können wir in dem Bild sehen, dass wir die Möglichkeiten des Augenblicks abdecken? Was jedoch passiert, wenn die Funktionalitäten erweitert werden? Wir müssen diesen Code ewig aktualisieren. Hier kommt der Polymorphismus ins Spiel und wir definieren, dass jedes Objekt seinen zurückgibt Preis ohne Rücksicht darauf, wie er berechnet wird, da er etwas Inneres jeder Klasse ist, was uns folgendermaßen passen würde:
Wir können dann sehen, dass es etwas ist, das uns hilft, einen Code zu haben, der mit der Zeit haltbarer und leichter zu warten ist.
Verkapselung
Dies besteht darin, die internen Details der Klasse nach außen zu verbergen , so dass nur über ihre eigenen Objekte und Methoden auf sie zugegriffen werden kann. Auf diese Weise können wir mit Klassen arbeiten, ohne dass wir ihre interne Funktionsweise kennen müssen, was die Komplexität der Implementierung beseitigt und die Klasse schützt Logik in unseren Objekten.
, ya que si trabajan de una forma abstracta podremos, instanciar múltiples veces y cada instancia es totalmente individual. Es ermöglicht uns auch, mit Gewissheit zu arbeiten, dass die Daten in unserem Objekt nicht verändert werden , da wir, wenn sie auf abstrakte Weise funktionieren, mehrere Male instanziieren können und jede Instanz völlig individuell ist.
Sehen wir uns ein Beispiel für ein Objekt an, das nicht gekapselt ist:
Hier sehen wir, dass, obwohl o1 eine Menge des Namens erstellt hat, o2 auf denselben Namen zugreift , ohne dass dies festgelegt wurde, dies in einer Anwendung problematisch wäre, stellen Sie sich vor, dass wir den Preis mehrerer Produkte benötigen und jedes den Preis des vorherigen überschreibt.
Lassen Sie uns nun anhand einer Kapselung sehen, wie der gesamte Programmablauf ablaufen würde.
Hier sehen wir, dass jedes Objekt seinen Namen behält, so dass wir sicher arbeiten können, die richtigen Werte für jedes unserer Objekte zu erhalten.