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 

Neuling, was bringen mir Klassen, LVOOP



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!

20.02.2012, 08:03
Beitrag #1

dali4u Offline
LVF-Stammgast
***


Beiträge: 298
Registriert seit: Aug 2008

12SP1, 14SP1
2007
DE


Deutschland
Neuling, was bringen mir Klassen, LVOOP
Hi Leute,

ich habe mir eine Tutorial angeschaut
bei dem zwei Werte addiert werden. Der Aufbau ist sehr einfach und verständlich...
aber habe Fagen dazu:

1. Was bringt es ein solchen Aufwand zu treibern, um zwei Zahlen zu addieren?
2. Wo sind die Vorteile bei der Verwedung von Klassen?

Es gibt zahlreiche Beispiele in der Hilfe von LV2011, aber nirgendwo finde ich
was darüber was zum Teufel der Vorteil sein soll?

Ich bezweifel das ich überhaupt richtig verstanden habe, WAS eine Klasse ist?
Im Glossar der LV Hilfe steht:

"Kategorie für Eigenschaften, Methoden und Ereignisse. Klassen sind in einer
Hierarchie angeordnet, wobei jede Klasse die Eigenschaften und Methoden
der übergeordneten Klasse enthält."

Das sagt mir garnichts! Mag sein das man das versteht, wenn man Klassen
verstanden hat... grummel

3. Könnte mir jemand mit einfachen Worten sagen was Klassen überhaupt sind?
4. Kann mir jemand ein Buch sagen, wo sowas gut und für Anfänger von OOP
erklärt ist?

Erstmal Danke und ich hoffe die Fragen sind nicht zu bescheuert, aber bin
nunmal Ing. für MEMS und nicht für Informatik.Big Grin
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
20.02.2012, 08:13
Beitrag #2

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

Beiträge: 12.612
Registriert seit: Feb 2006

Developer Suite Core -> LabVIEW 2015 Prof.
2006
EN

71083
Deutschland
RE: Neuling, was bringen mir Klassen, LVOOP
Was Du mit Klassen machen kannst, kannst Du problemlos auch ohne Klassen machen. Ich sehe keinen Vorteil darin.

Gruß Markus

--------------------------------------------------------------------------
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
20.02.2012, 09:10
Beitrag #3

oenk Offline
LVF-Stammgast
***


Beiträge: 361
Registriert seit: May 2005

>= 7.1
2004
EN

3018
Schweiz
RE: Neuling, was bringen mir Klassen, LVOOP
Ein Buch über objektorientierte Programmierung findest du zum Beispiel hier:
OOP-Buch
Auf die Vor-/ beziehungsweise Nachteile der objektorientierten Programmierung möchte ich hier nicht eingehen, da das gerne in einem Glaubenskrieg endet...

In theory, there is no difference between theory and practice; In practice, there is.

Chuck Reid
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
20.02.2012, 09:56
Beitrag #4

BNT Offline
LVF-Freak
****


Beiträge: 740
Registriert seit: Aug 2008

5.0 - 22Q3
1999
EN

64291
Deutschland
RE: Neuling, was bringen mir Klassen, LVOOP
Hi

LabVIEW Klassen sind eine schlaue erweiterbare Alternative zu Typdefinitionen.

LV Klassen definieren neue Datentypen, also neue Arten von Drähten!
Mit Hilfe der Vererbung, können die Daten und Funktionen erweitert bzw. spezifiziert werden.

Zu diesem Zweck definiert eine Anchestor-Klasse ein oder mehrere dynamic-dispatch VI's, die von den Kindklassen überschrieben werden können/müssen. Im einfachsten Fall macht es das Blockdiagram übersichtlicher, weil durch diesen Vererbungsmechnismus viele Case-Strukturen durch den einfachen Aufruf der dynamic-dispatch VI's ersetzt werden können.

Gruß Holger

NI Alliance Partner & LabVIEW Champion
GnuPG Key: 6C077E71, refer to http://www.gnupg.org for details.
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
22.02.2012, 07:35
Beitrag #5

Ome Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 109
Registriert seit: Nov 2009

2011
2009
DE

12XXX
Deutschland
RE: Neuling, was bringen mir Klassen, LVOOP
Guten Morgen,

also mir hat dieser Webcasts von NI geholfen das Grundprinzip zu verstehen.

Gruß Ome
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
22.02.2012, 08:27
Beitrag #6

abrissbirne Offline
LVF-Stammgast
***


Beiträge: 480
Registriert seit: Aug 2007

LV2009, LV2010
2007
EN

66123
Deutschland
RE: Neuling, was bringen mir Klassen, LVOOP
Wenn du dich mit LVOOP beschäftigen möchtest ist das hier leider das falsche Forum. Ich kann dir nur wärmstens lavag.org ans Herz legen. Dort gibt es eine Menge erfahrener LVOOP Experten und es werden div. Desgin Patterns und Problemstallungen diskutiert.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
24.02.2012, 13:40
Beitrag #7

Kiesch Offline
LVF-Stammgast
***


Beiträge: 394
Registriert seit: Mar 2009

2019, 2018, 2016
2009
DE

04103
Deutschland
RE: Neuling, was bringen mir Klassen, LVOOP
Für die Addition zweier Zahlen würde ich jetzt nicht zwingend Klassen verwenden (wurde wahrscheinlich nur als Beispiel genutzt zur einfachen Anschauung). Was Klassen aber leisten können ist dir ein Interface zur Verfügung zu stellen, auf das du ganz definiert zugreifst. Das heist zum einen: Bei richtiger Nutzung von Klassen kannst du Datenintegrität programmatisch sicherstellen.
Wie funktioniert das? Ganz einfach: Da du auf Klassen im Prinzip immer durch Methoden zugreifst (auch wenn du einfach nur einen Wert setzen willst) bzw. zugreifen solltest; kann diese Methode eben einfach um einen Integritätscheck erweitert werden und dann zum Beispiel das schreiben gezielt zurückweisen. So werden einige Sachen die du sonst später für jedes Programm neu prüfen müsstest (vor oder nach dem Schreiben) schon auf Unterster Ebene durch deine Klassendefinition erledigt.

Außerdem erlauben es dir Klassen den Datentyp deiner Eingabedaten (in die Klasse) und Ausgabe Daten (was die Klasse wieder ausgeben kann) unabhängig von der internen Speicherung zu machen. Das ist besonders dann ganz schick wenn du später eine Änderung vornehmen willst / musst.

Simpelbeispiel:
Du hast eine Klasse Integer-Array definiert, die aus zwei Attributen - einem Array von Integer Werten und einer Array Länge - besteht. Nun kannst du eine Methode definieren mit der du das Array setzt indem du ein Integer Array reingibst. Genauso kannst du aber auch das gleiche Array setzen indem du ein Str. Array eingibst (als repräsentation von Integers) und in der Methode die Typkonvertierung nach Integer vornimmst - passiert dann alles "unter der Haube" und das hast als Coder nur einmal den Aufwand.

Genauso fällt dir vermutlich auch irgendwann auf, dass du die Array Länge garnicht speichern müsstest. Entsprechend entfernst du das Attribut. Bei einem Normalen Cluster würde jetzt alles was darauf aufbaut (das die Array Länge gespeichert ist) nichtmehr funktionieren, in diesem Fall musst du lediglich in der Zugriffsmethode die Array Länge bestimmen lassen statt wie bisher das Attribut auszulesen - und schon funktioniert wieder jegliches Programm.


Persönlich merke ich das ich in LVOOP sehr viel kleinere Methoden Schreibe, als VIs / SubVIs ohne OOP. Das kann ein Vorteil sein, muss aber nicht (mehr VIs, dafür deutlich übersichtlicher).

Und dann ist da noch die Veerbung. Denke das ist in dem Verlinkten Webcast ganz gut erklärt und da wird denke ich auch klar warum das Praktisch ist.

Gruß Kiesch

P.S: Ich würde LVOOP nicht für unnütz erklären, finde es selbst sogar sehr praktisch. Einziges Problem ist meiner Meinung nach, dass die Klassen gegenüber Textbasierten Sprachen deutlich weniger Vorteile bringen.

Zitat:Märchen und Geschichten werden erzählt am Lagerfeuer, technischen Fakten werden mitgeteilt (oder so). (Genauso wie Software nicht auf einem Server "herumliegt", die ist dort installiert.)
*Zitat: IchSelbst*
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
  Klassen mit komprimierten Bibliotheken 83DM 1 5.310 09.08.2016 13:45
Letzter Beitrag: BNT
  Klassen verbinden oryx 4 8.986 07.05.2015 15:33
Letzter Beitrag: oryx
  CS++ - A LVOOP Actor based Framework BNT 18 25.291 14.03.2015 14:26
Letzter Beitrag: BNT
  Zugriff auf Textlabels in Klassen cpinkle 12 17.166 09.09.2014 11:52
Letzter Beitrag: Kiesch
  Dateiorganisation mit Klassen - Verzeichnis umbennen? Kiesch 0 7.028 05.02.2014 13:19
Letzter Beitrag: Kiesch
  LVOOP und DAQmx - Resource ist reserviert Sundypha 2 9.305 13.08.2012 12:42
Letzter Beitrag: Sundypha

Gehe zu: