|
|
Properties zwischen verschiednen Instanzen lesen |
|
Scoop |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 23.08.2016, 14:04
Titel: Properties zwischen verschiednen Instanzen lesen
|
|
|
|
|
Hallo,
ich stehe gerade auf'm Schlauch. Ich dachte, dass mein Problem trivial ist, allerdings habe ich nach stundenlager recherche noch keine Lösung finden können.
Ich habe 2 Klassen und erzeuge je eine Instanz:
Nun möchte ich die Property v der einen Instanz in die Property v_neu der anderen Instanz schreiben.
Hier bekomme ich die Meldung:
No appropriate method, property, or
field 'foo1' for class 'classField'.
Kann mir jemand sage, wo mein Denkfehler ist?
Ich habe jetzt alle Möglichkeiten ausprobiert, die mir in den Sinn gekommen sind. Bisher ohne Erfolg. Die Property im cmd auslesen klappt ohne Probleme. Ich möchte aber, dass die Instanz der Klasse class2 sich den Wert aus der Instanz der Klasse class1 automatisch hohlt.
Ich habe geschätzte 100 Artikel durchgelesen, aber keinen hilfreichen Hinweis auf mein Vorhaben gefunden. Ein paar Stichworte nach denen ich suchen kann, wären schon hilfreich.
Vielen Dank im vorraus!
Gruß,
Scoop
|
|
|
|
|
Scoop |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 23.08.2016, 14:15
Titel:
|
|
ist der kasusknaktus Vererbung? Ist es nicht möglich eine öffentliche property zu lesen, ohne dass eine Vererbung besteht?
|
|
|
punkNgrind |
Forum-Century
|
|
Beiträge: 136
|
|
|
|
Anmeldedatum: 10.03.11
|
|
|
|
Wohnort: Hamburg
|
|
|
|
Version: R2014b
|
|
|
|
|
|
Verfasst am: 23.08.2016, 14:33
Titel:
|
|
Bei dem was du beschreibst, kannst du das Attribute 'v_neu' der class2 direkt ohne eine Methode beschreiben:
Weiterhin ist die Methode 'foo' der 'class2' auch fehlerhaft:
Zuletzt bearbeitet von punkNgrind am 23.08.2016, 14:35, insgesamt einmal bearbeitet
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.495
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 23.08.2016, 14:33
Titel:
|
|
Hallo,
eine Eigenschaft foo gibt es ja auch nicht, sondern nur v (class1) und v_neu (class2). Public Properties können überall abgefragt werden.
Wenn in einem Objekt wirklich automatisch auf Änderungen einer Eigenschaft in einem anderen Objekt reagiert werden soll (z.B. Viewer), dann bräuchtest du Events und Listeners.
Grüße,
Harald
|
|
|
Scoop |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 24.08.2016, 11:05
Titel:
|
|
|
|
|
Vielen Dank für Eure Antworten und eure schnellen Antworten!
Jetzt hatte ich erst gedacht, dass ich den Wald vor lauter Bäumen nicht sehe. Allerdings bereitet mir das folgende immer noch Probleme:
1. Ich erstelle eine Instanz der Klasse 1
2. Ich erstelle eine Instanz der Klasse 2, eine Property der Instanz der Klasse 2 soll den Wert einer Property der Instanz aus Klasse 1 übernehmen.
Jetzt habe ich euch so verstanden, dass ich ganz einfach auf die Property der Instanz der ersten Klasse zugreifen kann. Das funktioniert bei mir aber nicht.
Wenn ich es in einer Methode versuche...
bekomme ich die Meldung:
No appropriate method, property, or
field 'v' for class 'classSource'.
Wenn ich versuche die Property der zweiten Klasse direkt mit dem Wert der Property aus der Instanz der ersten Klasse zu beschreiben, bekomme ich schon bei der Instanzieierung der 2. Klasse folgende Meldung:
Meldung:
Error using classSource
Unable to update the class
'classSource' because the new
definition contains an error:
The class test has no Constant
property or Static method named 'v'.
Aber das hat sie doch!
Vielleicht kann mir jemand ein einfaches Beispiel zeigen, wie das funktioniert?
Ich versuche die Problemstellung nochmal zu beschreiben:
Ich habe 2 Klassen.
Zuerst erstelle ich eine Instanz der Klasse 1.
Diese Klasse hat Properties mit festgelegten Werten.
Als nächstes möchte ich eine Instanz der Klasse 2 erstellen.
Einige Properties dieser Instanz sollen die Gleichen Werte annehmen, wie die Properties der Instanz der Klasse 1.
Ich kann gar nicht glauben, dass ich schon etliche Stunden mit recherche verbracht habe, ohne das Problem zu verstehen oder eine Lösung zu finden.
In der cmd kann ich die Werte natürlich ohne Probleme lesen oder Beschreiben. Ich möchte aber, dass die Instanz die Werte beim Erstellen eben dieser übernimmt.
Falls jemand noch einige Sachdienliche Hinweise geben könnte, wäre ich sehr Dankbar.
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.495
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 24.08.2016, 11:16
Titel:
|
|
Hallo,
die zweite Variante ist nur sinnvoll, wenn es ein constant oder static Property gibt - also ein Property, das bei allen Klasseninstanzen gleich ist.
Es wäre hilfreich, wenn du ein komplett lauffähiges Minimalbeispiel für die erste Variante zur Verfügung stellst. Es ist recht verwirrend, wenn Beispiel (Eigenschaft vSound) und Fehlermeldung (Eigenschaft v) nicht zusammenpassen.
Grüße,
Harald
|
|
|
Scoop |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 24.08.2016, 11:42
Titel:
|
|
Hallo Harald,
ja, du hast natürlich recht. Ich habe hier jetzt zig- variationen ausprobiert, die Code-Schnipsel passen nicht zusammen.
Kennt jemand Beispiele, wie Datenaustausch zwischen Instanzen in Matlab funktionieren kann? Kann doch jetzt nicht so speziell sein. Ist mein konzeptioneller Ansatz so daneben?
Ich werde den OOP Ansatz erstmal verwerfen, und das Programm prozedural runterschreiben. Das ist zwar nicht schön für die Präsentation, aber offensichtlich fehlt mir für Objektorientierung einiges an Wissen. Habe gerade leider keine Zeit, dafür so viele Stunden zu opfern.
Wenn es zeitlich passt, komme ich vielleicht nochmal verständlicher auf das Thema zurück.
Vielen Dank nochmal für eure schnellen Antworten und Sorry, dass ich mir bei der Fragestellung so wenig Mühe gegeben habe.
sonnigen Gruß,
Scoop
|
|
|
Scoop |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 24.08.2016, 11:45
Titel:
|
|
jetzt hab ich den wahrscheinlich gesuchten Hinweis von Harald fast nicht richtig wahrgenommen. Ich glaube der Hinweis auf const, war das was ich suchte.
Danke!
|
|
|
punkNgrind |
Forum-Century
|
|
Beiträge: 136
|
|
|
|
Anmeldedatum: 10.03.11
|
|
|
|
Wohnort: Hamburg
|
|
|
|
Version: R2014b
|
|
|
|
|
|
Verfasst am: 24.08.2016, 11:50
Titel:
|
|
Klasse 1:
Klasse 2:
Eingabe im Command Window mit Nutzung der Methode 'copyTestvariabel':
oder mit direkten Zugriff auf 'properties':
|
|
|
|
|
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.
|
|