9 Benutzerdefinierte Klassen (mit Tutorial)

Zum Inhaltsverzeichnis

Überblick
Ein praktisches Beispiel
Begriffe
Anwendungstipps

Überblick

Ein besonders nützliches und flexibles Leistungsmerkmal von eminec MYmap sind die benutzerdefinierten Klassen. (Wenn Sie sich schon mit objektorientierter Programmierung befasst haben, wird Ihnen das Konzept bekannt vorkommen.) Mit benutzerdefinierten Klassen können Sie eminec MYmap — auch ohne Programmierkenntnis! — selbst erweitern. Sie können zu jedem Objekt in Ihrem Map neue, nicht von eminec vorgesehene Eigenschaften hinzufügen.

Wenn Sie beispielsweise ein Map zur Entscheidungsfindung für den Kauf eines Fahrzeugs verwenden, könnten Sie die Eigenschaften »Benzinverbrauch«, »Höchstgeschwindigkeit« und »Kaufpreis« hinzufügen. Beim Projektmanagement könnten es die Eigenschaften »Verantwortlicher«, »Priorität« und »Bereits erledigt (%)« sein. eminec MYmap erlaubt es, auch komplexe Klassenhierarchien mit Hilfe von Vererbung aufzubauen, so dass immer nur diejenigen Eigenschaften, die für ein bestimmtes Objekt relevant sind, zur Verfügung stehen.

Sie sollten bereits allgemeine Vorkenntnis in der Bedienung von eminec MYmap haben, bevor Sie dieses Kapitel durcharbeiten. Nach einem praktischen Beispiel werden die Hintergründe vertieft. Falls Sie Schwierigkeiten haben, das Beispiel nachzuvollziehen, empfiehlt es sich, zunächst die Erklärungen am Ende dieses Kapitels zu lesen.

Ein praktisches Beispiel

IN DIESEM ABSCHNITT BILDEN SIE REALE SACHVERHALTE ÜBER BENUTZERDEFINIERTE KLASSEN IN EINEM MAP NACH UND VERWENDEN EMINEC MYMAP ALS ENTSCHEIDUNGSWERKZEUG. ZEIT: 30 MIN.

Einleitung

In unserem Tutorial ist dies Ihre Lage:

Um Ihre Entscheidung zu fundieren, wollen Sie zunächst einen tiefer gehenden Marktüberblick gewinnen. Daher gehen Sie folgendermaßen vor:

Vorbereitung: Das Map erstellen

Bevor wir mit der Übung beginnen können, erstellen Sie zunächst das Map, mit dem wir arbeiten werden.

Bei der Arbeit mit benutzerdefinierten Klassen in eminec MYmap werden Sie schwerpunktmäßig die Aufgabenbereiche »Gliederung« und »Klasse« nutzen. Während der Aufgabenbereich »Gliederung« Ihnen einen Überblick über die Hierarchie der Objekte in Ihrem Map gibt und damit insbesondere bei der Erstellung der Äste und Zweige in Ihrem Dokument nützlich ist (also jetzt!), fügen Sie später die benutzerdefinierten Eigenschaften und danach auch die Eigenschaftwerte über den Aufgabenbereich »Klasse« hinzu.

Erstellen Sie ein leeres Map, und öffnen Sie den Aufgabenbereich »Gliederung«, indem Sie die entsprechende Lasche am rechten Rand klicken oder die Tastenkombination Strg+5 drücken. Jetzt ändern Sie die Beschriftung des Map-Mittelpunkts in Rechnerkauf. Fügen Sie zwei Hauptäste hinzu, Desktops und Notebooks. An den Ast Desktops hängen Sie drei Zweige mit den Fabrikaten Beul, SpeedSmart Technologies und Mango an; den Ast Notebooks ergänzen Sie um die Zweige BigBusinessSystems und Mango.

Für unser Beispiel fügen Sie nun unter Desktops dem Fabrikat Beul die Modelle Accuracy 530 und Accuracy 730 hinzu (legen Sie dazu zwei Äste an); SpeedSmart Technologies erhält die Modelle 3000 und 3400, und Mango schließlich MangoForce 2000 und MangoForce 2500 dual.

Legen Sie abschließend folgende Notebooks an: die BigBusinessSystems-Modelle MindPuter N 14 und MindPuter Q 47, sowie die Mango-Klapprechner MangoForce 15" und MangoForce 17".

Sie haben nun die für den Aufbau Ihrer Klassenhierarchie erforderlichen Objekte in Ihr Map eingefügt. (Wie sie sehen, ist das Map wesentlich übersichtlicher als der vorliegende Fließtext.)

Eigenschaften deklarieren

Markieren Sie in Ihrem Map das Objekt, dem Sie Eigenschaften hinzufügen wollen; in unserem Beispiel ist das zunächst der Map-Mittelpunkt (Rechnerkauf). Schalten Sie nun auf den Aufgabenbereich »Klasse« um, indem Sie die entsprechende Lasche am rechten Rand klicken oder die Tastenkombination Strg+3 drücken. Der Aufgabenbereich »Klasse« ist in die Bereiche »Deklarieren« und »Verwenden« unterteilt. Zunächst benötigen Sie den Bereich »Deklarieren«. Falls dieser noch nicht ausgewählt ist, klicken Sie einmal darauf, um die Steuerelemente für die Klassendeklaration anzuzeigen.

Die Symbolleiste des Bereichs »Deklarieren« besteht aus fünf Schaltflächen; es sind, in dieser Reihenfolge, von links nach rechts die Befehle »Neue Eigenschaft«, »Eigenschaft löschen«, »Alle Eigenschaften löschen«, »Eigenschaftenvorlage importieren« und »Eigenschaftenvorlage exportieren«.

Klicken Sie die Schaltfläche »Neue Eigenschaft«, um eine Eigenschaft hinzuzufügen. Im Bereich »Deklarieren« erscheint die Eigenschaft Neu #1; sie ist bereits markiert, so dass Sie den standardmäßig vergebenen Namen direkt mit dem Wunschnamen überschreiben können. Geben Sie Preis ein. Nach der Eingabe des Namens der neuen Eigenschaft drücken Sie die Eingabetaste, um die neue Eigenschaft zu speichern. Wiederholen Sie dies, bis Sie alle Eigenschaften hinzugefügt haben:

eminec MYmap überträgt über die so genannte Vererbung diese Eigenschaft auf diejenigen Objekte, die dem Map-Mittelpunkt untergeordnet sind — also auf alle Objekte in Ihrem Map. (Dies werden wir später nutzen, um die Eigenschaftenwerte für die konkreten Rechnermodelle zu vergeben.)

Nicht alle Objekte in Ihrem Map sollten dieselben Eigenschaften besitzen. Beispiel: für einen Desktop ist die Eigenschaft Akkulaufzeit unsinnig, anders als für ein Notebook. Wenn Sie Information über Desktops und über Notebooks in einem Map Rechnerkauf zusammenfassen, deklarieren Sie daher unterschiedliche Sätze von Eigenschaften für die unterschiedlichen Objektklassen.

Markieren Sie jetzt das Objekt Notebooks. Wie Sie sehen, erscheinen die zuvor hinzugefügten Eigenschaften nun in der Liste »Geerbte Eigenschaften« am unteren Rand des Aufgabenbereichs »Klasse«. Die obere Liste ist leer, da Sie für das Objekt Notebooks bisher keine neuen Eigenschaften deklariert haben.

Fügen Sie nun auf dieselbe Art und Weise wie oben die Eigenschaften Akkulaufzeit und Bilddiagonale hinzu. Markieren Sie den Zweig MindPuter N 14 (oder jedes andere Notebook), um sich zu überzeugen, dass nun alle fünf Eigenschaften (Preis, Prozessortyp, Hauptspeicher, Akkulaufzeit und Bilddiagonale) bei allen Notebooks in der Liste »Geerbte Eigenschaften« erscheinen.

Deklarieren Sie abschließend für den Zweig Desktops die Eigenschaft Lautlos (für leisen Betrieb).

Damit haben Sie nun alle für die Übung benötigten Eigenschaften deklariert.

Eigenschaftwerte festlegen

Jetzt fügen Sie die Eigenschaftwerte hinzu — die eigentliche Information. Dazu benötigen Sie den Bereich »Verwenden« im Aufgabenbereich »Klasse«. Klicken Sie daher die Registerlasche »Verwenden« im genannten Aufgabenbereich. (Wenn der Aufgabenbereich nicht zu sehen ist, markieren Sie vorher ein beliebiges Rechnermodell — am besten den Accuracy 530, weil wir mit der Eingabe seiner Eigenschaftenwerte beginnen werden.)

Klicken Sie einen Eigenschaftennamen in der linken Spalte, um den Eigenschaftenwert zu setzen. Ein Eingabefeld erscheint, in dem Sie die Änderungen vornehmen. Verwenden Sie die Pfeiltasten HOCH und RUNTER, um zu anderen Eigenschaftwerten zu navigieren.

Übertragen Sie die folgenden Daten in Ihr Map, indem Sie die Eigenschaftenwerte zu den genannten Rechnern eingeben:

HerstellerModellProzessorSpeicherPreisLautlos
BeulAccuracy 530P 670512 MB900 €nein
Accuracy 730P 6901 GB1.400 €ja
SpeedSmart Technologies30003000*256 MB600 €nein
34003400*1 GB1.000 €nein
MangoMangoForce 2000Q3 20001 GB3.500 €ja
MangoForce 2500 dualQ3 2500 (x2)2 GB6.000 €ja

Dies sind die Beispieldaten für die Notebooks:

HerstellerModellProzessorSpeicherPreisAkkulfz.Bilddiag.
BigBusinessSystemsN 14P-M 830512 MB900 €2:3014"
Q 47P-M 8501 GB1.400 €4:3015"
MangoMangoForce 15"Q2 1500256 MB2.000 €4:0015"
MangoForce 17"Q2 17001 GB3.000 €6:0017"

Sie haben nun alle Daten Ihres Marktüberblicks in Ihrem Map erfasst.

Eigenschaftwerte ansehen und vergleichen

In einer tatsächlichen Anwendung hätten Sie die gerade eingegebenen Daten zu den Rechnermodellen nicht als Tabelle vorgegeben bekommen, sondern durch Recherche, etwa im Internet, erhoben. Nach und nach hätten Sie so die Information in eminec MYmap zusammengetragen.

Sie können nun die Daten in eminec MYmap vergleichen oder als Tabelle ausgeben. (Da dies lediglich eine Übung ist, liegt Ihnen die Tabelle natürlich in diesem Dokument bereits vor.)

Um Rechnermodelle in eminec MYmap zu vergleichen, klicken Sie die Objekte Ihres Maps. Die zugehörigen Eigenschaftenwerte erscheinen dann im Aufgabenbereich »Klasse«.

Klicken Sie nun das Menü »Datei« > »Exportieren« oder drücken Sie die Tastenkombination Strg+E. Es erscheint das Fenster »Exportieren«. Wählen Sie aus der Liste am linken Rand den Eintrag »Gliederung, HTML«, und stellen Sie sicher, dass das Kontrollkästchen »Zusätzliche Information hinzufügen — Klasseneigenschaften« aktiviert ist. (Dies ist nur mit der Variante »Premium« möglich.) Klicken Sie dann »OK«, und »Speichern«.

Ihr Browser öffnet sich und zeigt Ihnen eine Gliederung, in der die Eigenschaften und -werte tabellarisch gegliedert zu den jeweiligen Rechnern angezeigt werden.

SIE HABEN INFORMATION IN EMINEC MYMAP GESAMMELT UND DIESE DANN DURCH ANSICHT DES MAPS UND DURCH EXPORT EINER TABELLARISCHEN ÜBERSICHT ANALYSIERT. DAS TUTORIAL IST DAMIT BEENDET.

Begriffe

Nachdem Sie benutzerdefinierte Klassen in der praktischen Anwendung kennen gelernt haben, finden Sie im folgenden vertiefende Hintergrundinformation.

Objekte und Objekttypen

Ein eminec MYmap-Dokument setzt sich aus einem oder (zumeist) zahlreichen Objekten zusammen. Jedes Objekt ist von einem bestimmten Objekttyp. In dieser Programmversion stehen neben dem Map-Mittelpunkt die Objekttypen Ast/Zweig, Grafik, Querverbindung und Freitext zur Verfügung. Wenn Sie eminec MYmap den Aufgabenbereich »Gliederung« anzeigen lassen, können Sie sehr leicht erkennen, welche Objekte in Ihrem Map enthalten sind: jede Zeile der Gliederung steht für ein Objekt. Wenn Ihr Map beispielsweise einen Map-Mittelpunkt, drei Äste und sechs Zweige enthät, dann besteht es aus zehn Objekten (das Gesamtdokument zählt im Zusammenhang mit benutzerdefinierten Klassen nicht als eigenständiges Objekt).

Eigenschaften und Eigenschaftenwerte

Jeder der Objekttypen besitzt standardmäßig eine ganze Reihe von Eigenschaften — ein Objekt, das dem Objekttyp Ast/Zweig angehört, hat beispielsweise unter anderem die Eigenschaften »Farbe der Beschriftung« und »Schriftgröße«. Mit den in eminec MYmap eingebauten Bearbeitungswerkzeugen können Sie die Eigenschaftenwerte, also die konkreten Ausprägungen der Eigenschaften für ein bestimmtes Objekt, festlegen. Wenn Sie einen Ast klicken und dann in der Farbauswahl eine neue Textfarbe aussuchen, verändern Sie damit den Eigenschaftenwert der Eigenschaft »Farbe der Beschriftung«. Durch die im Programm fest eingebaute Logik wirkt sich eine Änderung eines Eigenschaftenwerts unmittelbar sinngemäß aus: eminec MYmap verwendet beispielsweise den Eigenschaftenwert »Farbe der Beschriftung« unabänderlich dazu, um die Textfarbe für das entsprechende Objekt bei der Darstellung Ihres Dokuments zu bestimmen.

Implizit deklarierte Klassen und benutzerdefinierte Eigenschaften

Neben den stets vorhandenen Eigenschaften, die mit den Objekttypen einhergehen, können Sie in eminec MYmap eigene, zusätzliche Eigenschaften hinzufügen. eminec MYmap verwendet die Struktur Ihres Dokuments, um aus den vorhandenen Objekten implizit deklarierte Klassen zu erzeugen. Das Objektmodell von eminec MYmap ist demnach vereinfacht: jedes Objekt deklariert automatisch und unabänderlich die gleichnamige Klasse, deren einzige Instanz es ist. (In den meisten objektorientierten Programmiersprachen ist die Deklaration von Klassen unabhängig von der Definition konkreter Instanzen, in eminec MYmap sind Definition und Deklaration gleichbedeutend.)

Benutzerdefinierten Eigenschaften sind — im Gegensatz zu den mit einem Objekttyp unabänderlich verbundenen Eigenschaften — nicht mit der Programmlogik von eminec MYmap verbunden und haben daher keine unmittelbar sichtbare Auswirkung auf die Darstellung eines Objekts in eminec MYmap.

Klassenhierarchien und Vererbung

Jedes Map ist in eminec MYmap als Baumstruktur gespeichert. (Sie können die Baumstruktur deutlich erkennen, wenn Sie den Aufgabenbereich »Gliederung« einblenden.) Dadurch entsteht eine Klassenhierarchie: ein Zweig, der einem bestimmten Ast zugeordnet ist, steht mit diesem in einer Kind-Vater-Beziehung. Wenn Sie beispielsweise in einem Map zum Fahrzeugkauf einen bestimmten Hersteller als Ast eingeben und dann die einzelnen Modelle dieses Herstellers als Zweige, die dem Ast untergeordnet sind, hinzufügen, dann entsteht eine Klassenhierarchie, die zum Ausdruck bringt, dass die Fahrzeugmodelle zu dem entsprechenden Hersteller gehören.

Fügen Sie nun benutzerdefinierte Eigenschaften zu der Klasse des Herstellers hinzu, so wirken sich diese Eigenschaften vorgabemäßig auch auf alle Fahrzeugmodelle dieses Herstellers aus, weil die Modelle in der Klassenhierarchie unter dem Objekt (und der implizit deklarierten Klasse) des Herstellers stehen. Dieses Verhalten von eminec MYmap wird als Vererbung bezeichnet.

Sie können für jedes Objekt (oder korrekterweise: für jede Klassendeklaration) festlegen, ob die Eigenschaften des übergeordneten Objekts geerbt werden sollen oder nicht. Wenn ja, dann weist das Objekt sowohl die Eigenschaften auf, die das übergeordnete Objekt hat, als auch möglicherweise zum Objekt neuerlich hinzugefügte Eigenschaften. Wird die Vererbung ausgeschaltet, so weist das Objekt nur die ihm selbst zugewiesenen Eigenschaften auf, eventuell in einem übergeordneten Objekt deklarierte Eigenschaften werden verworfen.

In diesem Zusammenhang ist es wichtig, Eigenschaften und Eigenschaftenwerte nicht zu verwechseln: fügen Sie dem Hersteller beispielsweise die Eigenschaft »Verbrauch« hinzu, so erbt jedes Automodell diese Eigenschaft; die konkrete Ausprägung jedoch — also der Eigenschaftenwert — wird niemals vererbt, sondern ist für die einzelnen Modelle getrennt festzulegen. Nicht benutzerdefinierte, mit einem Objekttyp verbundene Eigenschaften werden ebenfalls niemals vererbt. (Beispiel: Eine Illustration, die einem Ast/Zweig untergeordnet ist, besitzt demnach nicht alle Eigenschaften, die für einen Ast/Zweig charakteristisch sind.)

Anwendungstipps

Wenn Sie ein eigenes Klassenmodell schaffen, beachten Sie die Implikationen der oben beschriebenen Funktionsweise von benutzerdefinierten Klassen in eminec MYmap: wenn Sie die Vererbung bestimmter Eigenschaften wünschen, müssen Sie sicherstellen, dass die Objekte, die eine bestimmte Eigenschaft erben sollen, denjenigen Objekten untergeordnet sind, die diese Eigenschaft erstmals in die Klassenhierarchie Ihres Maps einführen.

Eigenschaften werden niemals über mehrere Maps hinweg vererbt: wenn Sie einen Sachverhalt über miteinander verknüpfte Maps darstellen, dann kann ein Map, auf das verwiesen wird, niemals Eigenschaften vom verweisenden Map erben. Grund dafür ist, dass jedes Map als unabhängige Datei gespeichert wird. Wäre eine Vererbung über Map-Grenzen hinweg möglich, dann könnte bereits das Umbenennen oder Verschieben einer Datei die gesamte Klassenhierarchie zerstören.

Sie können eine Klassendeklaration auch dann noch verändern, wenn Sie die Eigenschaftenwerte zu den Objekten bereits gesetzt haben. Klicken Sie im Bereich »Deklarieren« des Aufgabenbereichs »Klasse« einen Eigenschaftennamen, um ihn zu ändern. Sie können mit den Schaltflächen »Eigenschaft löschen« und »Alle Eigenschaften löschen« nicht mehr erforderliche Deklarationen entfernen.

Wenn Sie den Namen einer Eigenschaft ändern, dann findet eminec MYmap bereits gesetzte Eigenschaftenwerte für diese Eigenschaft nicht mehr. Die Eigenschaftenwerte erscheinen in diesem Fall also leer, bleiben aber in Ihrem Map gespeichert. Wenn Sie die Eigenschaft wieder umbenennen, so dass sie den ursprünglichen Namen erhält, oder wenn Sie eine neue Eigenschaft mit dem Namen der vormalig vorhandenen Eigenschaft hinzufügen, wird eminec MYmap automatisch wieder den zeitweilig unsichtbaren Eigenschaftenwert der Eigenschaft zuweisen. Um zu verhindern, dass unsichtbare Eigenschaftenwerte in Ihrem Map gespeichert werden, müssen Sie zunächst den Eigenschaftenwert leeren (also durch einen Eintrag, der keine Information enthält, ersetzen) und dann den Namen ändern bzw. die Eigenschaft löschen.

Im Zusammenhang mit benutzerdefinierten Eigenschaften ist die XML-Export-Schnittstelle von eminec MYmap besonders nützlich. Mehr dazu finden Sie im Kapitel Arbeiten mit XML-Daten.

Zum Inhaltsverzeichnis