Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
740to744
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
740to744
740to744
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Objektmodell = Klassenmodell

Objektmodell = Klassenmodell
11.03.2006 09:32:45
atlastraeger
Hallo Forum.
Im Zusammenhang mit Excel ist immer vom "Objektmodell" die Rede. Müsste es nicht genau genommen "Klassenmodell" heißen?
Danke im Voraus für Beiträge zur Diskussion.

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Objektmodell = Klassenmodell
11.03.2006 09:56:44
Rene
Hallo!
Nein, so ist es nicht. Ein Objekt ist ein Objekt und eine Klasse ist eine Klasse. In Excel gibt es beides.
Gruß, Rene
AW: Objektmodell = Klassenmodell
11.03.2006 10:13:47
HW
Naja, das sollte man doch auf den Punkt bringen
ein Objektes ist die tatsächlich im Speicher existierende Instanz einer Klasse ...
Gruß HW
ppt-user.de
AW: Objektmodell = Klassenmodell
11.03.2006 10:08:43
Ramses
Hallo
Versuch einer ganz banalen Erklärung:
Eine Anwendung, die ihre Objekte zur Verwendung in der eigenen, oder einer anderen Anwendungen bereitstellt, stellt damit auch Informationen über diese Objekte ("Eigenschaften" und "Methoden") in Form einer Klasse zur Verfügung:
Beispiel
Object "Auto"
Klasse "Felge"
Eigenschaft = "Stahl, Aluminium"
Klasse "Motor"
Eigenschat = "Otto, Diesel, Elektro"
Klassen sind also im Normalfall immer Objecten einer Application zugeordnet
Gruss Rainer
Anzeige
AW: Einspruch
11.03.2006 10:27:04
HW
Lieber Rainer,
sammer wieder da :-)...
Also das kann man so nicht sehen!
Ein Objekt hat Eigenschaften, Methoden und evtl. Ereignisse. Also auf Dein Beispiel bezogen
Objekt Auto
- Eigenschaft "Felge"
Felge kann die Werte Stahl, Aluminium annehmen (Auto.Felge = Stahl)
- Eigenschaft "Motor"
Motor kann die Werte annehmen "Otto, Diesel, Elektro" (Auto.Motor = Otto)
- Methode "Fahren"
kann die Befehle (Parameter) "Start,Vorwärts, Links, Rechts, Rückwärts, Stop" ausführen
(Auto.Fahren Start, Vorwärts)
Wenn ich jetzt in VBA
Dim Opel as New Auto
befehle habe ich für das Objekt Auto eine Klasse Opel erzeugt.
So ist das...
Gruß HW
ppt-user.de
Anzeige
Wieso....
11.03.2006 10:32:32
Ramses
Hallo HW
... Einspruch.
Du hast doch gerade das bestätigt was ich beschrieben habe, nämlich eine Klasse einem Object zugewiesen. :-)
Auch wenn die Klasse nun neu ist, das Object bleibt ;-)
Gruss Rainer
AW: Wieso....
11.03.2006 10:53:22
HW
Ach, du hast mich verwirrrrrt :-)
Erst existiert die Klasse
und daraus wird das Objekt gebildet - Instanziert
Also ich habs rauskehrt umbracht - da siehst Du was Dein Einfluß ausmacht ;-)...
Klasse ist die programmatische Beschreibung
und Objekt ist die tatsächlich im Speicher existierend Instanz einer Klasse.
Ein Objekt kann keine Klasse haben, sondern die Klasse beschreibt das Objekt.
VBA: Erzeuge ein Klassenmodul hier beschreibst Du die Eigenschaften, Methoden und Ereignisse, die Deine Klasse haben soll. Ein Akt der Programmierung.
Aus dieser Klassenbeschreibung wird in VBA mittels
Dim Opel as New Auto
dann das Objekt Opel erzeugt (instanziert).
Das Objekt Opel ist eine Instanz der Klasse Auto!
Die Klasse Application beschreibt Excel. Die Datei liegt irgendwo auf dem Rechner rum.
Wenn Du drauf klickst erzeugst Du eine Instanz der Klasse Excel ein Application Objekt Microsoft Excel.
Die Klasse Workbook beschreibt eine XL-Arbeitsmappe, wenn Du eine Leere Mappe anlegst, erzeugst Du eine Instanz der Klasse Workbook, ein Objekt Mappe1 der Klasse Workbook...
Usw...
Gruß HW
ppt-user.de
Anzeige
Objektmodell = Klassenmodell
11.03.2006 11:12:25
atlastraeger
Hmm.
Mal ein Beispiel. In dem Objektmodell gibt es ein "WorkSheet". Das ist doch eigentlich erst mal kein Objekt, sondern eine Klasse, denn erst wenn ich ein "WorkSheet" instanziere, hab ich doch "etwas Reales in den Händen", oder sehe ich das falsch?
AW: Objektmodell = Klassenmodell
11.03.2006 11:33:27
HW
Ja, etwa so...
Klasse
Ein Programmelement, das über Eigenschaften, Methoden und Ereignisse verfügen kann
Der Klassenname bestimmt den Typ der Klasse
In Visual Basic wird jede Klasse in einem Klassenmodul implementiert
Objekt
Ein Objekt ist eine Instanz einer Klasse
Durch Instanzierung wird aus einer Klasse (Vorlage) ein bis beliebig viele Objekt(e)
Bei Visual Basic wird Instanzierung über den Dim/Set New-Befehl durchgeführt
Ein Objekt hat einen Lebenszyklus:
- wird instanziert: Initialize-Ereignis im Klassenmodul
belegt Programmspeicher (lebt)
- wird terminiert: Terminate-Ereignis im Klassenmodul
wird aus dem Speicher entfernt (tot, is nothing)
Kurz: Bevor ich ein Objekt erzeugen kann, muss es irgendwo eine Klasse(n beschreibung) geben die erklärt was das konkrete Objekt (mit dem ich hantiere und dem ich einen Namen gebe) kann und tut...
Gruß HW
ppt-user.de
Anzeige
AW: Objektmodell = Klassenmodell
11.03.2006 12:01:24
atlastraeger
Gut, jetzt noch einen Schritt weiter:
Ich habe ein Tabelle - nennen wir sie "Tabelle1".
"Tabelle1" verfügt über eine Befehlsschaltfläche, also über ein Objekt der Klasse "CommandButton".
Jetzt müsste es doch so sein:
Intern gibt es zunächst einmal eine von "WorkSheet" abgeleitete Klasse (weil sie über alle Methoden und Attribute von "WorkSheet" verfügt, zusätzlich aber noch z.B. über das Attribut "button" der Klasse "CommandButton"), und erst von dieser abgeleiteten Klasse instanziere ich schießlich ein Objekt namens "Tabelle3".
Oder?
AW: Objektmodell = Klassenmodell
11.03.2006 13:31:01
HW
Hm,
in dem Moment, wo Du eine Tabelle HAST, hast Du bereits ein Objekt der Klasse Worksheet instanziert. Der Commandbutton ist eine abgeleitete Klasse der allgemeinen Klasse Steuerelemente und erbt die grundsätzlichen Elemente aller Steuerelemente. Das sind einfach zwei unabhängige Objekte ihrer jeweiligen Klasse Worksheet und Control.
VBA kennt z.B. keine Vererbung, so das Du hier einfach zwei unabhängige Objekte in der Objekthierachie hast. Ansonsten müßte man ein(e) neue(s) Klasse(nmodul) WorkbookControl (oder so) definieren können, die aus der Worksheet-Klasse UND der Steuerelement-Klasse erbt. UNd diese neue KLasse müsste dann als neues Objekt instanziert werden.
Siehe dazu den Objektkatalog für Excel und MSForms...
Gruß HW
ppt-user.de
Anzeige
Danke....
11.03.2006 12:26:44
Ramses
Hallo HW
... ich wusste gar nicht, das mein Einfluss so gross ist :-)
Aber ich danke für die Korrektur meiner Aussage die ich auch verstabbuchwechselt habe.
Aus der Online-Hilfe
"... in einem Klassenmodul ein neues Objekt erstellen..."
Gruss Rainer

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige