|
|
Ist dieses OOP-Konzept sinnvoll bzw. erlaubt? |
|
Giorgio |
Forum-Newbie
|
|
Beiträge: 3
|
|
|
|
Anmeldedatum: 05.09.17
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 05.09.2017, 15:26
Titel: Ist dieses OOP-Konzept sinnvoll bzw. erlaubt?
|
|
|
|
|
Hallo,
bin Anfänger was das Programmieren angeht und wage mich gerade an OOP.
Nun habe ich zwei Klassen geschrieben: Taster und Lampe.
Wenn ich ein Taster-Objekt erzeuge und seine Methode schalten aufrufe, soll bei einem Lampe-Objekt der Zustand (an/aus) gewechselt werden.
Code einfügen:
(alt+c)
und
Code einfügen:
(alt+c)
Habe erst versucht das mithilfe eines Events zu programmieren. Hat auch geklappt, jedoch musste ich dem Taster-Objekt dafür eine Referenz auf das Lampen-Objekt geben und diese in den properties speichern. Aber eigentlich ist ja das Prinzip von OOP, dass jedes Objekt nur seine eigenen Eigenschaften kennt, oder? Würde heißen keine Eigenschaft, die ein Lampenobjekt beinhaltet.
Außerdem ist bei mir der Taster gleichzeitig Ereignisquelle und Listener. Es wird erstmal die Methode
aufgerufen um dann über
die Methode
aufzurufen. Eigentlich soll aber die Lampe dem Taster quasi zuhören, oder? (Ich weiß ich kann auch direkt über
das Lampen-Objekt verändern, aber ich würde mich freuen, wenn mir jemand das Event-Prinzip an dem Beispiel erklären könnte! Oder kann ich das mit den Events auch einfach umgehen und das immer so machen?!)
Ist es erlaubt oder sinnvoll das so zu programmieren, wenn man nach den Regeln der OOP geht? Ich Will lernen wie man es richtig macht, bin mir aber nicht so sicher. Also vielen Dank schon mal!
|
|
|
|
|
Giorgio |
Themenstarter
Forum-Newbie
|
|
Beiträge: 3
|
|
|
|
Anmeldedatum: 05.09.17
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 05.09.2017, 15:50
Titel:
|
|
Die Zugriffsrechte für den Zustand des Lampen-Objekts müssen natürlich public sein sonst klappts nicht
|
|
|
denny |
Supporter
|
|
Beiträge: 3.853
|
|
|
|
Anmeldedatum: 14.02.08
|
|
|
|
Wohnort: Ulm
|
|
|
|
Version: R2012b
|
|
|
|
|
|
Verfasst am: 13.09.2017, 21:21
Titel:
|
|
Zitat: |
Aber eigentlich ist ja das Prinzip von OOP, dass jedes Objekt nur seine eigenen Eigenschaften kennt, oder? Würde heißen keine Eigenschaft, die ein Lampenobjekt beinhaltet. |
In OOP sollte man nicht direkt auf die Properties zugreifen, sondern über Methoden, weil es bietet mehr Sicherheit
Also am besten die Klasse Lampe weitere Methoden einfügen
Schalter braucht kein Listener, da reicht auch eine Funktion, z.B Schalter drücken.
Listener braucht man um z.B Properties wie Zustand der Lampe zu überwachen, wenn Zustand sich ändert, dann kann z.B Textausgabe machen.
Die Ereignisse sind gut, um z.B aus einer Klasse in anderer Klasse das Ereignis auszulösen.
Beispiel für Ereignis konnte mehrere Schalter in Verbindung mit Relais sein.
z.B in Relais gibt es ein Event, welcher Schalter beim Drücken auslösen. Wenn Relais geschlossen ist, dann Licht ein, wenn auf Licht aus.
|
|
|
Giorgio |
Themenstarter
Forum-Newbie
|
|
Beiträge: 3
|
|
|
|
Anmeldedatum: 05.09.17
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 19.09.2017, 07:56
Titel:
|
|
Okay, verstanden! Das Beispiel mit dem Relais hat mir geholfen!
Vielen Dank für die Hilfe
|
|
|
|
|
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.
|
|