Master MATLAB OOP:Erstellen von robustem, wiederverwendbarem Code mit Klassen und Objekten
MATLAB, eine leistungsstarke numerische Rechenumgebung, unterstützt objektorientierte Programmierung (OOP), um die Erstellung von komplexem, wiederverwendbarem Code zu erleichtern. OOP in MATLAB dreht sich um das Konzept von Klassen und Objekten.
Im Folgenden sind die in Matlab unterstützten objektorientierten Funktionen aufgeführt.
- Objekt
- Klasse
- Kapselung
- Vererbung
- Polymorphismus
- Abstraktion
- Eigenschaften
- Methodenüberladung
Die Hauptpfeiler der objektorientierten Programmierung sind −
- Kapselung
- Abstraktion
- Vererbung
- Polymorphismus
Warum objektorientiertes Design verwenden?
Beim Erstellen von Software müssen Sie die Daten entwerfen, die Ihre Anwendung verwenden wird, und Vorgänge erstellen, um mit diesen Daten zu arbeiten. Bei der prozeduralen Programmierung übergeben Sie Daten an Funktionen, um Operationen auszuführen. Bei der objektorientierten Programmierung (OOP) bündeln Sie Daten und Operationen in Objekten, die über definierte Schnittstellen interagieren.
Ansätze zum Schreiben von MATLAB-Programmen
Mit MATLAB können Sie sowohl prozedurale als auch objektorientierte Ansätze verwenden und so Objekte und reguläre Funktionen in Ihren Programmen kombinieren.
Prozedurales Programmdesign
In der prozeduralen Programmierung −
- Fokus − Auf die Schritte, die zum Erreichen eines Ziels erforderlich sind.
- Datendarstellung – Als einzelne Variablen oder Felder in einer Struktur.
- Operationen – Als Funktionen implementiert, die Daten als Argumente verwenden.
- Flow – Programme rufen eine Reihe von Funktionen auf, übergeben Daten und empfangen im Gegenzug geänderte Daten. Jede Funktion führt bestimmte Operationen an den Daten aus.
Objektorientiertes Programmdesign
- Komponenten identifizieren – Bestimmen Sie die Teile des Systems oder der Anwendung, die Sie erstellen möchten.
- Muster analysieren – Suchen Sie nach Komponenten, die wiederholt verwendet werden oder gemeinsame Merkmale aufweisen.
- Komponenten klassifizieren – Gruppieren Sie Komponenten basierend auf Ähnlichkeiten und Unterschieden.
Nach dieser Analyse definieren Sie Klassen, um die Objekte zu beschreiben, die Ihre Anwendung verwendet.
Klassen und Objekte
- Klasse – Beschreibt eine Reihe von Objekten mit gemeinsamen Merkmalen.
- Object – Eine bestimmte Instanz einer Klasse. Die Werte in den Eigenschaften eines Objekts unterscheiden es von anderen Objekten derselben Klasse.
- Methoden – Innerhalb einer Klasse definierte Funktionen, die Verhaltensweisen implementieren, die allen Objekten dieser Klasse gemeinsam sind.
Wann sollten Sie objektorientierte Programme erstellen?
Sie können einfache Aufgaben mit einfachen Funktionen erledigen. Wenn Ihre Aufgaben jedoch größer und komplexer werden, können die Funktionen umfangreich und schwer zu verwalten sein.
Wenn Funktionen zu groß werden, können Sie sie in kleinere Funktionen aufteilen und Daten zwischen ihnen übergeben. Mit zunehmender Anzahl der Funktionen kann die Verwaltung der zwischen ihnen ausgetauschten Daten jedoch schwierig und fehleranfällig werden. Dies ist der Zeitpunkt, an dem Sie die Verwendung von objektorientiertem Design für Ihre MATLAB-Programme in Betracht ziehen sollten.
Objektorientierte Programme verstehen
Wann sollten Sie auf objektorientierte Programmierung (OOP) umsteigen? Wenn Ihre Aufgaben komplexer werden, kann das Denken in Objekten die Verwaltung und das Verständnis Ihres Codes erleichtern.
In Objekten denken
Manchmal ist es einfacher, Probleme zu lösen, indem man in Objekten denkt. Identifizieren Sie die Substantive in Ihrem Problem als Objekte und die Verben als die Aktionen, die diese Objekte ausführen. Wenn Sie beispielsweise mit verschiedenen Arten von Geldverleihern wie Banken und Hypothekenbanken zu tun haben, können Sie jede Art von Kreditgebern als Objekt darstellen. Jedes Objekt führt bestimmte Aktionen (Methoden) aus und enthält bestimmte Daten (Eigenschaften).
- Gemeinsamkeiten identifizieren:Suchen Sie nach Gemeinsamkeiten aller Objekte eines Typs. Beispielsweise könnten alle Kreditgeber über die Möglichkeit verfügen, Kredite und Immobilien gegen Zinsen zu vergeben.
- Unterschiede identifizieren:Verstehen Sie, wie sich jedes Objekt unterscheidet. Beispielsweise bieten einige Kreditgeber Kredite möglicherweise nur an Unternehmen an, während andere Kredite möglicherweise nur an Privatpersonen vergeben. Sie können Unterklassen aus einer Basisklasse erstellen, um diese Unterschiede zu bewältigen.
- Gemeinsamkeiten herausfiltern:Gemeinsam genutzte Funktionen in einer Oberklasse zusammenfassen und bestimmte Funktionen von Unterklassen verarbeiten lassen.
Vorteile von OOP in MATLAB
Hier sind einige Vorteile, die Sie erhalten, wenn Sie in Objekten denken.
1) Objekte verwalten ihren internen Status – Es stellt sicher, dass ihre Eigenschaftswerte gültig sind. Steuert, wer auf Eigenschaften und Methoden zugreifen kann.
2) Reduzierung der Redundanz – Wenn Ihr Programm wächst, hilft OOP bei der Bewältigung der Komplexität, indem es Redundanz reduziert. Anstatt Funktionen zu kopieren und zu ändern, können Sie eine Basisklasse mit gemeinsamem Code erstellen. Unterklassen können dann bestimmte Funktionen hinzufügen oder überschreiben, ohne Code zu duplizieren.
3) Konsistente Schnittstellen definieren – Die Verwendung einer Basisklasse für ähnliche, aber spezialisierte Klassen trägt zur Aufrechterhaltung einer konsistenten Schnittstelle bei. Dieser Ansatz macht deutlich, was jeder Teil des Systems tun muss. Stellt sicher, dass der Code diese Anforderungen über eine gemeinsame Schnittstelle widerspiegelt.
4) Reduzierung der Komplexität – Objekte bieten eine Schnittstelle, die das Innenleben verbirgt. Es stellt außerdem sicher, dass Interaktionen festgelegten Regeln folgen.
5) Förderung der Modularität – Durch die Aufteilung eines Systems in Objekte können natürliche Module entstehen. Klassen bieten verschiedene Ebenen der Zugriffskontrolle:öffentlich, geschützt und privat.
6) Überladene Funktionen und Operatoren – In OOP können Sie vorhandene Funktionen überladen, um mit Ihren Objekten zu arbeiten. Sie können beispielsweise neu definieren, wie bestimmte Operationen, wie Gleichheit oder Addition, für Ihre benutzerdefinierten Objekte funktionieren.
Funktionen von OOP in MATLAB
Eine kurze Beschreibung der in MATLAB unterstützten Funktionen der objektorientierten Programmierung (OOP) −
Object – Eine Instanz einer Klasse, die sowohl Daten (Eigenschaften) als auch Methoden (Funktionen) zum Bearbeiten dieser Daten enthält.
Klasse – Eine Klasse ist eine Blaupause, die die Eigenschaften und Verhaltensweisen von Objekten definiert. Es kapselt Daten (Attribute) und Funktionen (Methoden), die mit diesen Daten arbeiten. Objekte sind Instanzen von Klassen, jede mit ihren eigenen eindeutigen Daten. In MATLAB definieren Sie eine Klasse mithilfe einer Classdef-Datei.
Kapselung – Das Konzept der Bündelung von Daten (Eigenschaften) und Methoden in einer einzigen Einheit (Klasse). In MATLAB steuern Sie den Zugriff auf Klassenkomponenten mithilfe von Zugriffsmodifikatoren wie public, protected und private.
Vererbung – Ein Mechanismus, bei dem eine Klasse (die Unterklasse) Eigenschaften und Methoden von einer anderen Klasse (der Oberklasse) erben kann, was die Wiederverwendung von Code ermöglicht. In MATLAB geben Sie die Vererbung mithilfe der Classdef-Syntax an.
Polymorphismus – Die Fähigkeit, Methoden in Unterklassen neu zu definieren, sodass verschiedene Klassen auf unterschiedliche Weise auf denselben Methodenaufruf reagieren können. MATLAB unterstützt Polymorphismus durch Methodenüberschreibung.
Abstraktion – Das Konzept, komplexe Implementierungsdetails zu verbergen und nur die wesentlichen Merkmale eines Objekts anzuzeigen. MATLAB verwendet abstrakte Klassen und Methoden, um die Abstraktion zu implementieren.
Eigenschaften – Innerhalb einer Klasse definierte Variablen, die Daten für das Objekt enthalten. MATLAB ermöglicht das Festlegen von Eigenschaftsattributen, wie z. B. Zugriffskontrolle und Standardwerten.
Methodenüberladung – Die Möglichkeit, mehrere Methoden mit demselben Namen, aber unterschiedlichen Eingabeargumenten zu definieren. MATLAB unterstützt das Überladen von Methoden, damit sich Methoden je nach Eingabetyp oder -menge unterschiedlich verhalten können.
Kapselung – Schützt und organisiert Code durch Gruppieren von Daten und Methoden in Klassen. MATLAB verwendet Zugriffskontrolle (z. B. private Eigenschaften), um Daten zu kapseln.
Abstraktion – Vereinfacht komplexe Systeme durch Ausblenden der Implementierungsdetails. In MATLAB können Sie sich mit abstrakten Methoden und Klassen auf die wesentliche Funktionalität konzentrieren.
Inheritance – Fördert die Wiederverwendung von Code, indem es Klassen ermöglicht, Verhalten und Eigenschaften von anderen Klassen zu erben. In MATLAB wird die Vererbung beim Definieren einer Klasse deklariert.
Polymorphismus – Ermöglicht Flexibilität, indem verschiedene Klassen die gleiche Methode auf unterschiedliche Weise implementieren können. In MATLAB wird Polymorphismus durch Überschreiben von Methoden in abgeleiteten Klassen erreicht.
MATLAB