|
|
Funktionen anderer Klassen ausführen |
|
Piet |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 11.11.2009, 15:58
Titel: Funktionen anderer Klassen ausführen
|
|
Hallo!
Ich beginne gerade mit OOP in Matlab.
Ich habe eine Klasse 'CHauptklasse'. In dieser werden im Konstruktor z.B. zwei Instanzen anderer Klassen erstellt:
Wie kann ich nun z.B. in einer Funktion der Klasse zwei eine Funktion aus Klasse drei aufrufen?
Habs bisher so, dass die Funktion der Klasse zwei ein Event auslöst, welchem die Hauptklasse zuhört. Diese kann dann mit
die gewünschte Funktion auslösen.
Dies geht aber bestimmt eleganter, oder?
MfG
Piet
|
|
|
|
|
Titus |
Forum-Meister
|
|
Beiträge: 871
|
|
|
|
Anmeldedatum: 19.07.07
|
|
|
|
Wohnort: Aachen
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 11.11.2009, 16:37
Titel:
|
|
Hallo,
ich geb zu, ich verstehe die Frage nicht: "in einer Funktion der Klasse zwei eine Funktion aus Klasse drei aufrufen?", was meinst Du damit? Eine Funktion der Klasse aufrufen ist immer (solange sie nicht statisch ist), an ein Objekt der Klasse gebunden ...
Titus
|
|
|
piet |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 11.11.2009, 16:52
Titel:
|
|
Hallo!
Ich habe mal Beispielfiles angehängt. Hoffe das hilft
Beschreibung: |
|
Download |
Dateiname: |
CDrei.m |
Dateigröße: |
300 Bytes |
Heruntergeladen: |
927 mal |
Beschreibung: |
|
Download |
Dateiname: |
CZwei.m |
Dateigröße: |
357 Bytes |
Heruntergeladen: |
1001 mal |
Beschreibung: |
|
Download |
Dateiname: |
CHauptklasse.m |
Dateigröße: |
340 Bytes |
Heruntergeladen: |
947 mal |
|
|
|
Titus |
Forum-Meister
|
|
Beiträge: 871
|
|
|
|
Anmeldedatum: 19.07.07
|
|
|
|
Wohnort: Aachen
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 11.11.2009, 16:56
Titel:
|
|
Hallo,
hmm, sorry, aber das macht keinen Sinn: das obj, welches bei den Methoden an erster Stelle steht, ist ein Objekt der Klasse, in der die Methode definiert ist. Jede Klasse ist für sich verantwortlich, Du probierst, diese grundlegende Eigenschaft zu überwinden.
Vielleicht wird es klarer, wenn Du kurz erklärst, was die 3 Klassen repräsentieren sollen ...
Titus
|
|
|
piet |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 12.11.2009, 12:44
Titel:
|
|
Hallo!
Die Hauptklasse soll sozusagen als übergordnete Verwaltungsklasse arbeiten. In ihr läuft z.B. ein Timer, der Daten einliest.
Klasse zwei wäre dann eine GUI. Der Timer in der Hauptklasse kann ja dann mit
eine Funktion "GuiAktualisieren" in dem Objekt CZwei aufrufen. Diese aktualiesiert dann Anzeigen auf der GUI.
In Klasse drei ist ein Berechnungsprogramm hinterlegt. Hier liegt z.B. eine Funktion "StarteBerechnung".
Wenn sich nun auf der GUI ein Button befindet, möchte ich beim Klicken von diesem, die Funktion "StarteBerechnung" durchführen. Dafür müsste ja Das Objekt der Klasse zwei (also meine GUI) das Objekt der Klasse drei (das Berechnungsprogramm) kennen.
Hoffe das ist verständlich
Danke für deine Nachfragen!
|
|
|
Titus |
Forum-Meister
|
|
Beiträge: 871
|
|
|
|
Anmeldedatum: 19.07.07
|
|
|
|
Wohnort: Aachen
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 12.11.2009, 13:43
Titel:
|
|
Hallo,
wenn das so ist, dann ist aber der erste Weg der richtige: das GUI "alarmiert" über ein event die Hauptklasse, welche ihrerseits die Berechnung startet. Klingt zwar unelegant, wie Du geschrieben hast, ist aber logisch richtig ...
Titus
|
|
|
piet |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 12.11.2009, 15:09
Titel:
|
|
|
|
|
|
Einstellungen und Berechtigungen
|
|
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
|
|
Impressum
| Nutzungsbedingungen
| Datenschutz
| FAQ
| RSS
Hosted by:
Copyright © 2007 - 2024
goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.
|
|