| |||||||
Du magst keine Werbung? Wir auch nicht!
Einfach registrieren und die Werbung ist weg. Diese Nachricht sehen nur nicht registrierte Nutzer.
![]() |
| | LinkBack | Themen-Optionen | Ansicht |
| | #1 (permalink) |
| Neuer User Registriert seit: Jan 2012
Beiträge: 15
| Objektorientierung Basics - Zugriff auf andere Objekteigenschaften
Liebe Flasher, aktuell macht mir die objektorientierte Denkweise einige Probleme. Folgende Frage habe ich mir dabei immer wieder gestellt: Wie kann ich auf Eigenschaften/Methoden eines Objektes aus einem anderen Objekt aus zugreifen?Die verschiedenen SichtbarkeitsZustände sind mir mittlerweile klar, das eigentliche zugreifen bereitet mir dabei jedoch noch Probleme. Ich hab in der Klasse user beispielsweise eine public var isActivated welche entweder 0 oder 1 sein kann. In einer anderen Klasse wird eine public function checkIfUserIsActivated zur Verfügung gestellt, die überprüft ob ein Benutzer freigeschalten wurde. Wie kann nun in dieser Funktion auf öffentliche Eigenschaften eines anderen Objektes zugegriffen werden? Ich könnte es auch als Parameter an die Funktion übergeben, aber mir geht es um die öffentliche Funktionen und Variablen eines Objektes und wie darauf zugegriffen werden kann. Eventuell ist das obige Beispiel nicht das Beste, aber ich hoffe ihr versteht, was ich meine. Falls mein aktuelles Denkmuster in Bezug auf öffentliche Variablen und Funktionen völlig falsch ist, dürft ihr dies natürlich auch direkt rauspfeffern - vielen lieben Dank. Geändert von Lilos (14-01-2012 um 22:30 Uhr) |
| | |
| | #2 (permalink) |
| Neuer User Registriert seit: Jan 2005
Beiträge: 20
|
Kurz gesagt: Die Objekte müssen in irgendeiner Art von Beziehung zueinander stehen. ![]() Die Beziehungen zwischen Objekten sind aber von den Beziehungen zwischen Klassen zu unterscheiden. Klassen sind die Baupläne/Blaupausen/DNA, Objekte (auch Instanzen genannt) die konkrete Ausführung des Bauplans, d.h. das tatsächliche Haus/Auto/Lebewesen. Wie viel hast du denn schon in etwa von dem Thema gehört? Das Thema ist ja doch recht umfangreich. Wikipedia-Artikel, die dir vielleicht weiterhelfen könnten: kurze Einführung in die Objektorientierung und eine allgemeine Herangehensweise, um Beziehungen zwischen Klassen zu veranschaulichen: Klassendiagramm |
| | |
| | #3 (permalink) |
| + Zimt & Zucker Registriert seit: Mar 2006 Ort: hinterm Mond gleich links
Beiträge: 2.040
|
Um mit einem Objekt zu interagieren benötigst du eine Referenz zu/auf dieses Objekt. Das hat eigentlich gar nichts mit Objektorientierung zu tun, denn verallgemeinert lässt sich sagen: ohne eine Variable zu kennen, kann ich sie nicht direkt ändern. PHP-Code: PHP-Code: Geht es um eine Nutzerverwaltung, würden vermutlich viele User Objekte (Klassennamen bitte immer groß schreiben!) in einem Array liegen. Andernfalls könnte einer Funktion das gesamte User Objekt übergeben werden oder wie du schon vorgeschlagen hast, nur der Wert der Eigenschaft. Für eine solche "ja oder nein" Eigneschaft, solltest du den typ Boolean verwenden.
__________________ anbei Grüße vom milchreis: Viva la [Silb] "Selbst wenn uns nur noch der Zynismus treibt, wir werden trotzdem einfach immer weiter gehen!" [Von null auf Flash in einem Klick.] <<< klick |
| | |
| | #4 (permalink) |
| Flash-Designer Registriert seit: May 2006 Ort: Wiesbaden
Beiträge: 6.162
| Zur Ergänzung hier noch ein paar ausführlichere Erläuterungen, mit denen ich in anderen Threads versucht habe, den Unterschied und die Aufgaben von Klassen und Instanzen zu illustrieren:
__________________ Viele Grüße // Martin Martin Kraft // Interaktionsdesign Hilfreiche Websites: // Hilfe zur Adobe Flash Plattform // ActionScript 2 Referenz // ActionScript 3 Referenz // ActionScript 3 Arbeitshandbuch // weitere Flash Ressourcen Bitte keine Flashfragen per PM oder Profilnachricht! Dafür ist das Forum da! |
| | |
| | #5 (permalink) |
| Neuer User Registriert seit: Jan 2012
Beiträge: 15
|
Vielen Dank für eure Antworten. Da werde ich mich mal die Tage durchforsten ![]() Was mir gerade noch über den Weg gelaufen ist: Wenn ich ein KlickEvent eines Objektes in einem anderen Objekt weiterverarbeiten möchte, muss ich dann ein komplettes Objekt an meine andere Funktion übergeben, um dort einen EventListener dranzuhängen?Ich hab' also ein Objekt mit einer Funktion, welche auf den Klick auf ein andere Objekt hören soll. Das ist gerade sehr theoretisch aber ihr habt bestimmt ganz viele tolle Ideen, wie man dies lösen könnte - vielen Dank. |
| | |
| | #6 (permalink) | |
| Flash-Designer Registriert seit: May 2006 Ort: Wiesbaden
Beiträge: 6.162
| Zitat:
Welcher »anderen Funktion« Du dabei warum welches Objekt übergeben willst, versteh ich nicht Poste mal ein Code-Beispiel!Grundsätzlich ist es einer Funktion aber vollkommen egal, ob Du ihr eine »komplettes Objekt« oder nur eine String-Variable übergibst. Es wird nämlich eh »nur« eine Referenz übergeben und nicht das Objekt kopiert...
__________________ Viele Grüße // Martin Martin Kraft // Interaktionsdesign Hilfreiche Websites: // Hilfe zur Adobe Flash Plattform // ActionScript 2 Referenz // ActionScript 3 Referenz // ActionScript 3 Arbeitshandbuch // weitere Flash Ressourcen Bitte keine Flashfragen per PM oder Profilnachricht! Dafür ist das Forum da! | |
| | |
| | #7 (permalink) |
| Techniker Registriert seit: Sep 2003 Ort: 64807
Beiträge: 16.324
| sowas sollte man möglichst vermeiden. es besteht die gefahr, dass zwischenzeitlich das original gelöscht wird. diese referenz jedoch verhindert, dass das gelöschte objekt auch aus dem speicher entfernt werden kann. am beispiel button: a) der button selbst hat funktionen wie rollover, rollout. dafür hat er selbst listener und programme die diese funktionen ausführen. b) im menü z.b. entscheidet sich, welcher der vielen buttons angeklickt ist. also gibt es hier einen listener und eine funktion dafür. das menü kennt den button. c) irgendwo soll jemand etwas ausführen, auf grund eines buttonsklicks. dieses jemand kennt aber weder den button noch das menü. jetzt gibts mehrere möglichkeiten: c.1) der button oder das menü versendet ein event, das kann man so einrichten, das dein jemand das auch empfängt. c.2) oder z.b. eine info wird in das model geschrieben. wenn es dann an's updaten geht, dann gelangt diese info in's view.
__________________ die ultimative antwort auf alle programmierfragen: der debugger mfg h.g.seib www.SeibsProgrammLaden.de Geändert von hgseib (16-01-2012 um 09:30 Uhr) |
| | |
| | #8 (permalink) | |
| Perverted Hermit Registriert seit: Mar 2004 Ort: Delmenhorst
Beiträge: 12.139
| Zitat:
Beispiel: es gibt eine Klasse Person, die eine Eigenscft name hat. Die Instanz wird irgendwo erzeugt und eine View bekommt eine Referenz auf diese und zeigt beispielsweise durch ein TextInput Feld den Namen an. Nun schreibst du etwas in das TextFeld, um die Eigenschaft neu zu setzen. Da du in der View nicht die Eigenschaft neu setzen möchtest, da es bei größeren Projekten so zu Problemen in der Übersichtlichkeit kommen kann (und noch ganz anderen: siehe Separation of concerns), sollte das ein Controller übernehmen. Der View muss also also dem Controller alle nötigen Informationen mitgeben, die er braucht für die Modifikation. Das wird, sofern der Controller die Person nicht kennt, nicht nur der neue Name sein, sondern auch eine Referenz auf die Person, um den neuen Namen zu setzen. Diese Informationen gibst du am besten in einem Custom-Event mit (das von Event erbt). So bekommt der Controller alle Informationen die er braucht und die View und der Controller kennen immer nur die Person, die sie kennen müssen. Das ist das Problem, dass Seib ansprach. Auch wenn das ein Problem ist, dass man tatsächlich durch MVC sehr elegant in den Griff kriegen kann. Der Vorteil dieses Vorgehens: View und Controller können schnell von Daten gereinigt werden, da es nur wenige Angriffspunkte gibt. Ausserdem ist es ein einfaches Rezept um Strukturen aufzubauen (das nun schon seit einigen Jahrzehnten bestand hat).
__________________ http://icodeapps.net | Meet me at the Flex user group Hamburg talking about CoffeeScript | |
| | |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| Probleme mit Objektorientierung | Paratron | ActionScript 3 | 14 | 13-03-2011 23:53 |
| Erkennen das ein andere Tab / Fenster des Browsers schon zugriff hat | Funkey | PHP und MySQL | 1 | 09-01-2011 21:37 |
| MovieClip als Objekt einer und Zugriff auf andere Klassenelemente aus dem MC heraus | DerRobertBerlin | ActionScript 3 | 3 | 06-09-2010 10:00 |
| Zugriff auf Movieclips und andere Komponentent innerhalb Komponenten | citizen | ActionScript 2 | 3 | 13-05-2010 23:20 |
| [Galileo] - Praxisbuch Objektorientierung | marc | Bücher und Video-Trainings | 0 | 05-04-2007 11:10 |