INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

LVOOP Klassenaufteilung



Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!

27.08.2008, 11:47 (Dieser Beitrag wurde zuletzt bearbeitet: 27.08.2008 11:57 von eg.)
Beitrag #1

eg Offline
LVF-SeniorMod


Beiträge: 3.868
Registriert seit: Nov 2005

2016
2003
kA

66111
Deutschland
LVOOP Klassenaufteilung
Hi Leute!

Ich habe mehrere Geräte gleicher Art. Nun wollte ich mir eine Geräteklasse und eine übergeordnete Klasse die ein Array aus den Geräteklassen enthält sowie noch einige übergeordnete Informationen über Zeit und Anzahl Geräte.

Wie ist es am besten mit LVOOP zu machen? Klasse ableiten?


Auf dem Bild sieht ihr zwei Klassen VRU und VRUs.

Ich habe jetzt einfach die Klasse VRUs (übergeordnete) von der Klasse VRU abgeleitet. Durch die Ableitung kann ich doch auf die Methoden des Parents zugreifen? Oder muss ich gar keine Ableitung machen?

Gruß, eg


Angehängte Datei(en) Thumbnail(s)
   

Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
28.08.2008, 19:16
Beitrag #2

eg Offline
LVF-SeniorMod


Beiträge: 3.868
Registriert seit: Nov 2005

2016
2003
kA

66111
Deutschland
LVOOP Klassenaufteilung
Hm, keine LVOOP Experten hier? UpBig Grin

Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
28.08.2008, 19:26
Beitrag #3

Y-P Offline
☻ᴥᴥᴥ☻ᴥᴥᴥ☻
LVF-Team

Beiträge: 12.612
Registriert seit: Feb 2006

Developer Suite Core -> LabVIEW 2015 Prof.
2006
EN

71083
Deutschland
LVOOP Klassenaufteilung
Also ich nicht..... BahnBig Grin

Gruß Markus

' schrieb:Hm, keine LVOOP Experten hier? UpBig Grin

--------------------------------------------------------------------------
Bitte stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort !!
--------------------------------------------------------------------------
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
28.08.2008, 19:58
Beitrag #4

IchSelbst Offline
LVF-Guru
*****


Beiträge: 3.700
Registriert seit: Feb 2005

11, 14, 15, 17, 18
-
DE

97437
Deutschland
LVOOP Klassenaufteilung
' schrieb:LVOOP Experte
Nee.

Aber ich kann dir sagen, wie's in textorientiert ist. Warum sollte es in LVOOP vom Verfahren her anders sein?


Zitat:Durch die Ableitung kann ich doch auf die Methoden des Parents zugreifen?
Genau das ist ja Sinn und Zweck der Sache.

Die abgeleitete Klasse kann immer auf die Daten der Elternklasse zugreifen. Sofern die Elternklasse ihre Daten freigegeben hat! Was also innerhalb der Elternklasse als public (Felder oder Methoden) definiert ist, sieht die abgeleitete Klasse. Was die Elternklasse nicht freigibt (private), können auch die abgeleiteten Klassen nicht sehen. Die Kapselung als solche bleibt also erhalten.

Sinn der Ableitung ist es ja gerade, eine Klasse zu haben, die festgelegte Felder und Methoden zur Verfügung stellt.

Jemand, der eine Instanz einer Klasse betrachtet, weiß nicht, ob eine Methode (oder ein Feld) in der Klasse dieser Instanz definiert ist oder ob die Methode in der Elternklasse der Klasse der Instanz definiert ist.


Zitat:Oder muss ich gar keine Ableitung machen?
Ohne Ableitung kein direkter Zugriff. Nur indirekt über eine Instanz.
Man kann auch eine neue Klasse anlegen und in der dann ein Objekt der "Elternklasse" anlegen.

Beispiel:
1. Die Elternklasse TClass1 habe eine public Methode ADD.
2. Abgeleitete Klasse TClass2 sein von TClass1 abgeleitet. Dann heißt der Zugriff auf ADD ganz einfach "Class2.ADD"
3. Eigene Klasse TClass3. Diese Klasse muss ein Feld Class1 enthalten vom Typ TClass1. Der Zugriff auf ADD heißt dann "Class3.Class1.ADD"

Ob dein Bild mehr der Variante 3 entspricht oder der Variante 2, weiß ich nicht.

Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
28.08.2008, 20:03
Beitrag #5

eg Offline
LVF-SeniorMod


Beiträge: 3.868
Registriert seit: Nov 2005

2016
2003
kA

66111
Deutschland
LVOOP Klassenaufteilung
Wow, danke. Ich habe eigentlich gedacht, dass "public" alle sehen, auch die nicht abgeleiteten, "protected" nur die abgeleiteten und "private" keine ausser der eigenen Klasse.

Kannst du es bestätigen?

Danke für die ausführliche Antwort, eg

Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
28.08.2008, 20:30
Beitrag #6

IchSelbst Offline
LVF-Guru
*****


Beiträge: 3.700
Registriert seit: Feb 2005

11, 14, 15, 17, 18
-
DE

97437
Deutschland
LVOOP Klassenaufteilung
' schrieb:Ich habe eigentlich gedacht, dass "public" alle sehen, auch die nicht abgeleiteten
Das stimmt.

Zitat:"protected" nur die abgeleiteten
Das stimmt auch. Allerdings verwende ich selbst diese Möglichkeit nicht.

Zitat:und "private" keine ausser der eigenen Klasse
Auch das ist wieder richtig.
Oder sag ich lieber so: ich mach das immer so. Man kann mämlich, zumindest in Delphi, aus der einen Klasse auf private der anderen Klasse zugreifen - solange beide Klassen innerhalb eines Moduls (also innerhalb einer "Textdatei") deklariert sind.

Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
28.08.2008, 20:54
Beitrag #7

eg Offline
LVF-SeniorMod


Beiträge: 3.868
Registriert seit: Nov 2005

2016
2003
kA

66111
Deutschland
LVOOP Klassenaufteilung
Ok, mein Problem ist zu verstehen ob ich die Klasse VRUs (=Gruppe der Geräteklassen + einige andere Eigenschaften) von der Geräteklasse VRU ableiten soll. Denn die Instanzen der Geräteklasse VRU werden in einem der Member VIs der Gruppenklasse VRUs erzeugt und verarbeitet.

Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
28.08.2008, 21:52
Beitrag #8

IchSelbst Offline
LVF-Guru
*****


Beiträge: 3.700
Registriert seit: Feb 2005

11, 14, 15, 17, 18
-
DE

97437
Deutschland
LVOOP Klassenaufteilung
' schrieb:Ok, mein Problem ist zu verstehen ob ich die Klasse VRUs (=Gruppe der Geräteklassen + einige andere Eigenschaften) von der Geräteklasse VRU ableiten soll.
[*grübel*]
Wenn es ein Array of VRU ist, das in VRUs verwendet werden soll, dann kannst du nicht ableiten.

Für abgeleitete Klassen gilt (in Delphi) folgendes:
Die am weitesten abgeleitete Klasse wird instanziert. Hierfür gibt es einen speziellen Befehl, der Create heißt und den Typ CONSTRUKTOR hat. Hauptaufgabe des Creates ist es Speicherplatz für die Instanz bereitzustellen und die Instanz zu initialisieren. Der erste Befehl in der Create-Routine muss das Aufrufen der Create-Routine der eigenen Elternklasse sein (inherited). Beachte den kaskadierenden Charakter dieses Vorgehens. Das allererste, was effektiv getan wird, ist also die Create-Routine der allerersten Elternklasse. Innerhalb einer jeden Create-Routine initialisiert sich die entsprechende Instanz selbst. Am Ende hat jede übergeordnete Elternklasse sich selbst erstellt und initialisiert. Nichtsdestoweniger kann eine Instanz bei ihrem eigenen Create auch noch zusätzliche Eigenschaften der Elternklasse/n beinflussen.

Zitat:Denn die Instanzen der Geräteklasse VRU werden in einem der Member VIs der Gruppenklasse VRUs erzeugt und verarbeitet.
Wenn eine Instanz Class1 einer Klasse TClass1 in einer Methode von TClass2 erzeugt wird, dann muss TClass2 nicht zwangsläufig von TClass1 abgeleitet worden sein. Die Instanzen von TClass1 sind dann Felder bzw. Eigenschaften von (T)Class2 und werden vollständig von (T)Class2 verwaltet. (Auch wenn TClass2 Felder von TClass1 sind, kann TClass1 von TClass2 abgeleitet worden sein)

Den Unterschied zwischen abgeleitet und Instanz kann man sich wie folgt vorstellen: abgeleitete Klassen haben einen "senkrechten Datenfluss": oben steht die älteste Elternklasse. Nach unten hin stehen die Childs bis ganz unten die aktuelle Klasse. Nicht abgeleitet, also als Instanz, ist eine "waagrechte Struktur": Oben steht die eigene Klasse. Eine Ebene tiefer stehen parallel, also nebeneinander, alle Methoden, Felder, Eigenschaften etc. dieser Klasse.

Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  CS++ - A LVOOP Actor based Framework BNT 18 30.494 14.03.2015 14:26
Letzter Beitrag: BNT
  LVOOP und DAQmx - Resource ist reserviert Sundypha 2 10.480 13.08.2012 12:42
Letzter Beitrag: Sundypha
  Neuling, was bringen mir Klassen, LVOOP dali4u 6 18.498 24.02.2012 13:40
Letzter Beitrag: Kiesch
  LVOOP - wann wird Kopie erstellt? Kiesch 7 14.990 21.10.2011 14:23
Letzter Beitrag: Kiesch
Information LVOOP-Anfänger, Kommentar zu Programm Martin Heller 11 25.422 09.03.2011 14:32
Letzter Beitrag: Martin Heller
  LVOOP im Kommen! abrissbirne 49 78.677 02.11.2010 16:50
Letzter Beitrag: BNT

Gehe zu: