5.Objektorientierte Programmierung mit C#

Größe: px
Ab Seite anzeigen:

Download "5.Objektorientierte Programmierung mit C#"

Transkript

1 5.Objektorientierte Programmierung mit C# 1. Theoretische Grundlagen der OOP In diesem ersten Kapitel 5.1 werden Sie die von einer Programmiersprache weitgehend unabhängigen Prinzipien der objektorientierten Programmierung kennenlernen. Erschrecken Sie nicht über so viel Theorie, seien Sie auch nicht verzweifelt, wenn Ihnen manches zunächst unverständlich bleibt: Spätestens wenn wir die Technik in den folgenden Kapiteln einsetzten, werden Sie nach und nach auch dieses Kapitel als Wörterbuch schätzen lernen! Klarstellung zu Beginn Man kann sich trefflich darüber streiten, ob OOP im Informatikunterricht der Oberstufe überhaupt behandelt werden soll. Einiges spricht tatsächlich dagegen: Gebraucht wird diese Technik erst bei Programmen mit vielen tausend Zeilen Programmcode. Solche Programme werden wir aber in der Schule kaum schreiben! OOP ist keine eigenständige Theorie, wie etwa die Kryptologie, sondern lediglich eine Technik. Hier passt der Satz: OOP löst die Probleme, die wir ohne Computer nicht hätten! Professor U.Brandes (Universität Konstanz) formuliert es so: OOP ist ein Mittel zum Zweck. Nicht mehr, aber auch nicht weniger. Ergänzen möchte ich: OOP ist eine Möglichkeit, die Realität zu modulieren, - keinesfalls aber immer die günstigste! Wie Sie in Kapitel 2 gesehen haben, erleichtert ein gelegentlicher Paradigmenwechsel die Arbeit des Programmierens erheblich. Mit Haskell benutzt man das funktionale, mit Prolog das deklarative und mit PHP das prozedurale Paradigma. Diese und viele weitere Programmiersprachen kommen völlig ohne OOP aus! Bei solch gewichtigen Argumenten wird es Sie verwundern, dass wir der OOP dennoch ein ganzes Kapitel gewidmet haben. Die Gründe dafür: Zum Verständnis des objektorientierten Paradigmas werden fast alle Kapitel des dreijährigen Informatikunterrichts ( ) berührt. Die Modulierung realer Objekte durch OOP ist anfangs verblüffend einfach. Kein anderes Programmier-Paradigma ist so nah an der Realtiät! Auch bei kleineren Programmen kann man den Vorteil der OOP gut nachvollziehen: Alles, was man irgendwann erarbeitet hat, kann problemlos in späteren Programmen weiterverwendet werden. Auch lassen sich Fehler leichter finden. Kurz formuliert: Nach kurzer Einarbeitungszeit wird die Arbeit des Programmierens deutlich vereinfacht. 442

2 Welche Programmiersprache? Nachdem Sie in Kapitel 2 schon erste Schritte in den objektorientierten Sprachen Java, Delphi und C# unternommen haben, liegt es nahe, dieses Kapitel mit einer der drei Sprachen durchzuziehen. Man kann, wie hier im ersten Teil des Kapitels, OOP auch ganz losgelöst von einer konkreten Programmiersprache behandeln, aber dann wird die Sache etwas trocken! Etwa so wie in einer Fremdsprache, in der man ausschließlich die Grammatik, oder noch schlimmer, die Philosophie der Grammatik diskutiert! Das vorliegende Kapitel 5 habe ich vor einigen Jahren für Delphi geschrieben. Leider hat die Firma Borland, die Delphi entwickelt, inzwischen ein derartig restriktives und schwer zu installierendes Lizenz-Modell für Schulnetze, dass ein Wechsel zu einer anderen Sprache angezeigt erschien. Außerdem sind die, für private Nutzer kostenlosen Standard-Versionen, inzwischen so eingeschränkt, dass man selbst im gymnasialen Schulalltag an Grenzen stößt. (Beispiel: Datenbanken!). Wünschenswert wäre natürlich auch eine Unterstützung der Klassenbibliothek.NET, eine möglichst umfangreiche Hilfsfunktion und einen problemlos zu bedienenden Editor. Natürlich muss die Sprache kostenlos, möglichst uneingeschränkt, und leicht zu installieren sein. Wie Sie der Überschrift des Kapitels entnehmen, viel die Wahl auf C# (Visual C# 2010 Express). Immer dann, wenn es dem besseren Verständnis dient, werden wir dennoch auf die Lösungen in Delphi und Java hinweisen. Voraussetzung für Kapitel 5 ist daher Kapitel Es genügt auch schon, wenn dort der Teil über Visual C# und.net durchgearbeitet wurde. Aufgabe 1 Informieren Sie sich im Internet über die ebenfalls im Visual Studio Express (Microsoft) angebotenen objektorientierten Programmiersprachen C++ und VB und schreiben Sie die Ergebnisse Ihrer Recherche direkt ins Skript. Historisches Bereits 1962 entwickelte Ole-Johan Dahl und Kristen Nygaard eine Programmiersprache namens Simula. Angeblich waren die beiden damit beschäftigt, ein Programm für eine Schiffssimulation zu schreiben. Das gestaltete sich wegen der vielen abhängigen Parameter derart schwierig, dass sie am Ende vollends den Überblick verloren. So sind sie angeblich auf die Idee gekommen, die Schiffe selbst als Objekte zu verwenden, die ihre Daten aber auch selbst verwalten. Auf diese Weise sollte eine möglichst genaue Modellierung realer Objekte möglich werden. 443

3 Diese Objekte sollten untereinander nur mittels vorher festgelegter Schnittstellen (Interfaces) interagieren. Eine solche Programmiersprache gab es bisher nicht- also musste sie neu geschaffen werden: So wurde Simula zum Prototyp aller objetkorientierten Programmiersprachen. (Der Name OOP entstand allerdings erst später). Man muss sich klar machen: Zu dieser Zeit war Pascal noch nicht einmal angedacht! Mit der Sprache Smalltalk wurde anfang der 70-er Jahre das Modellierungs-Konzept aus Simula verfeinert. Insbesonder war dies die Idee, bereits fertige Konzepte wiederzuverwenden. Ein typisches Beispiel: Betrachten Sie einen klassischen Button auf einem Formular. Hat man den einmal erzeugt, so können alle weiteren graphischen Schaltflächen, die dem Button ähnlich sind, aus dem Ur-Button abgeleitet werden und muss nicht neu erfunden werden. Und genau daraus entseht die Idee, fertige Konzepte weiterzuvererben. Da es in der Realität eine unübersehbare Menge an Objekten gibt, die vielleicht irgendwann nutzbringend modelliert werden könnten, muss dem Programmierer die Möglichkeit gegeben werden, eine möglichst vollständige Erweiterbarkeit bei Datentypen zuzulassen. Man spricht in diesem Zusammenhang von einem abstrakten Datentyp (ADT). Dieser wurde erstmals in (sehr akademischen) Programmiersprachen Eifel und Oberon verwirklicht. Am besten kann man den Übergang vom prozeduralen zum objektorientierten Paradigma an der in den 70-er Jahren sehr beliebten Sprache C beobachten. Mitte der 80-er Jahre entstand aus C das heute, besonders bei den Jugendlichen, noch immer hoch angesehene C++. Gut, - C++ ist nun nicht gerade ein Musterbeispiel der OOP, aber dennoch: Man kann damit oo programmieren! Dass die prozedurale Methode dort auch noch erlaubt ist, wird ja nur von den Puristen verachtet! Heute sind die wichtigsten objektorientierten Programmiersprachen zweifelsohne Java, Delphi und C#. Man kann wohl sagen, dass die Industrie durch die fortschreitende Komplexität der Anwendungen, ohne den objektorientierten Ansatz noch lange nicht auf dem heutigen Stand wäre. Oder anders formuliert: Wie schlecht wäre Vista erst ohne OOP ;-) Zur Modellierung verwendet man hier übrigens keine Flussdiagramme, sondern sprachenunabhängig UML (Unified Modelling Language). Mit Hilfe von Diagrammen wird hier die Abhängigkeit der Objekte mit ihren Strukturen dargestellt. Ein gutes Werkzeug hierfür sind die Fujab-Tools. ( ) In dem folgenden Bild aus Wikipedia können Sie nochmals die geschichtlichen Zusammenhänge studieren. 444

4 Ein Detail am Rande: Anders Hejlsberg hat sowohl Objet-Pascal (Grundlegender Code für Delphi) als auch C# entwickelt. Wenn es einen Nobelpreis für Informatik gäbe: Er hätte ihn verdient!! Aufgabe 2 Es gibt natürlich noch weitere Programmierparadigmen. Hier die wichtigsten: Strukturierte Programmierung Aspektorientierte Programmierung Generative Programmierung Informieren Sie sich über mindestens eines dieser Paradigmen und untersuchen Sie dabei die Frage, ob es der objektorientierten Programmierung entgegensteht oder sie sogar ergänzt. (Tipp: Wikipedia) 445

5 Sprachliches Eine der eigentlich vermeidbaren Schwierigkeiten der OOP ist die Unmenge an Synonymen. Das mag mitunter an der ungenauen Übersetzung liegen. Weshalb manche Autoren allerdings object mit Instanz übersetzen, bleibt wohl deren Geheimnis. Es existieren zu viele verschiedene Begriffe, die alle das Gleiche meinen! Das ist die eine Seite der Medaille. Auf der anderen Seite und das ist weitaus schlimmer - gibt es gleiche Begriffe, die verschiedenes bedeuten! Was der Erste Feld nennt, nennt der Zweite Attribut. Unter einem Attribut versteht der Erste jedoch das, was der Zweite Datum nennt... Gibt es denn keine Normierung, was all die Begriffe und ihre Bedeutung angeht? Keine Sorge, die gibt es: Die Interface Description Language IDL. IDL-Standard Namen Klasse Objekt Feld Attribut Operation Parameter Einige Synonyme zum IDL-Standard gebräuchliche Synonyme Objekt Instanz, Exemplar Attribut, Eigenschaft Datenfeld, Datum, Feld (Member-)Funktion, Methode, Aktion, Routine oder Prozedur Argument, Variable Leider vereinfacht die obige Tabelle den Sachverhalt. (Als ob die Situation nicht schon kompliziert genug wäre!) Nicht immer sind die Begriffe in der zweiten Spalte echte Synonyme zur ersten Spalte. Vielmehr gibt es einen feinen, philosophischen Unterschied zwischen manchen Begriffen. Aber: Wen interessiert das? Klare Antwort: Uns nicht!! Das war Geständnis Teil 1. Bringen wir es hinter uns. Daher jetzt sofort: Geständins Teil2: Wir verwenden die IDL-Standard Namen nicht zu hundert Prozent! Unverzeihlich, mag man da denken. Die Wahrheit aber ist: Niemand benutzt den IDL- Standard in Reinform! Da mag der König (Theorie) schimpfen und stampfen: der Fürst (verwendete Programmiersprache) ist halt näher am Volk! In C#, wie übrigens in den meisten anderen Programmiersprachen auch, wird beispielsweise statt des Namens Operation der Begriff Methode verwendet. Trösten kann Sie dass wir alle verwendeten Bezeichnungen konsequent benutzen. Es wird also keine Bezeichnungs-Synomyme in diesem Skript geben. dass alle Bezeichnungen sowohl theoretisch (in diesem), als auch praktisch (im nachfolgenden Kapitel) ausgearbeitet werden. 446

6 Objekte und Klassen Programmiersprachen unabhängig wollen wir nun möglichst genau beschreiben, was unter einem Objekt zu verstehen ist. Dabei werden wir (soweit möglich und sinnvoll) eine Objekt-Analogie aus der realen Welt betrachten. Sie soll uns helfen, die abstrakten Begriffe anschaulicher zu machen. Zunächst ist ein Objekt ein Bestandteil des Programms. Es besteht aus Feldern und Methoden. In den Feldern ist der Zustand des Objekts festgehalten, durch die Methoden wird das Verhalten des Objekts bestimmt. In der Regel sind die Felder von außen nicht erkennenbar. Dadurch sind diese Zustands-Daten geschützt. Allerdings erlaubt das Objekt, eine Anfrage zu stellen. Diese Anfrage ist nichts anderes, als dass von außen eine Methode des Objekts aufgerufen wird. Schematisch: Durch diese Anfrage wird die Methode aktiv und liefert dem Anfragenden, ohne nach außen zu zeigen, was im Inneren des Objekts vorgeht, als Antwort die gewünschten Daten. Um die neuen Begriffe etwas klarer zu machen, werden wir nun versuchen, ein reales Objekt (Röhren bzw CRT-)Fernsehapparat zu modellieren. Zunächst hat der konkrete CRT-Fernseher, 40 Zoll, (das Objekt der Klasse CRT- Fernseher) feststehende (Daten-)Attribute. Zum Beispiel die Größe der Bildschirmdiagonalen, die Gerätetiefe, die Farbe etc. Dies sind gewiss Felder, die sich durch eine Anfrage nicht ändern lassen, auch wenn dies durchaus wünschenswert wäre... Es gibt aber weitere Attribute: Eingestellter Kanal, Lautstärke, Helligkeit des Bildes. Häufig kann man hier einen bestimmten Wert, sagen wir zwischen 0 und 100 wählen. Damit das klappt, muss das Objekt Methoden haben, wie: Kanal wechseln, Lautstärke oder Helligkeit verändern und so weiter. Was genau an Änderungen der (physikalischen) Daten innen vorgenommen wird, weiß der Anfragende nicht. Er muss es auch nicht wissen. Felder, wie Stromstärke im Lautsprecher sind private und daher noch außen hin gekapselt. Das bedeutet, dass man von außen diese Werte nicht sehen und direkt beeinflussen kann. Die Zahl für die eingestellte Lautstärke (z.b. 45) ist nach außen sichtbar und somit public. Puristen unterscheiden noch zwischen Operationen und Methoden eines Objekts. Wenn sich die Lautstärke verändert hat, dann wurde offensichtlich die Operation Lautstärke verändern angewandt. Dazu kann es durchaus verschiedene (hier physikalische) Methoden geben. 447

7 Nehmen wir an, eine Elektronik-Firma baut einen neuen Fernsehapparat. Natürlich muss sie das Gerät dabei nicht neu erfinden! Selbst wenn sie nun den ersten LCD- Fernseher entwirft, sind doch viele Methoden und Felder gleich oder ähnlich wie beim alten CRT-Gerät. Daher tut man gut daran, wenn man zunächst möglichst allgemein eine Beschreibung für das Gerät Fernseher festschreibt. In OOP heißt eine solche abstrakte Beschreibung eine Klasse. Mit Hilfe der UML (= Unified Modeling Language) kann man sie grafisch darstellen. Wir verwenden hierzu das Programm UMLed 184 von Georg Kubitz. Unter Optionen wählen wir "Java-Version", weil das nach Java exportierte Programmgerüst C# sehr ähnlich ist. So sieht das Bild der abstrakten Klasse Fernseher mit der Klasse Fernbedienung (die eine Klasse Fernseher kennt) aus. Abstrakt nennt man die Klasse, weil ihre Methoden nicht explizit angeben sind (C#: virtual). (Wir kommen weiter unten auf diese besondere Form der Klassen zurück.) Die Basis-Klasse Fernseher hat mehrere abgeleitete Klassen: CRT-, LCD- und Plasmafernseher (letzterer ist nicht dargestellt). Aus diesen lassen sich weitere Klassen ableiten. Zum Beispiel LCD 50 Hz und LCD 100 Hz Fernseher. Aber immer erben die abgeleiteten Klassen die Eigenschaften und Methoden der Basis-Klassen. Mehr noch: Ein Objekt aus der abgeleiteten Klasse enthält immer auch ein Objekt aus der Basisklasse - sofern die Basisklasse weder eine abstrakte noch eine statische Klasse ist! Denn von diesen beiden kann man, wie wir später sehen werden, keine realen Objekte instantiieren! In UMLed wird übrigens nicht zwischen Eigenschaften und Methoden unterschieden. Allerdings kann man bei der Erzeugung eines Attributs gleich eine Schreib- und/oder Leseeigenschaft miterzeugen. 448

8 Der etwas merkwürdige, aber gebräuchliche Satz: Ein Objekt wird instantiiert bedeutet, dass im Heap (= bestimmter Bereich des RAM) nach Vorgabe der Klassendefinition konkrete Werte in die vorher undefinierten Speicherinhalte geschrieben werden. Stellen Sie sich die Klassendefinition wie einen Stempel vor, der bei jedem neu zu bildenden Objekt seinen Abdruck im Heap hinterlässt. Dieser Abdruck beeinhaltet den Speicherbedarf. Bei jedem neu zu erstellenden Objekt wird wieder gestempelt! Jedes Objekt hat auf diese Weise seinen eigenen Speicherinhalt. In den Speicher werden dann zum Beispiel die Inhalte der Felder eingetragen. Erst dadurch können konkrete Berechnungen mit dem Objekt durchgeführt werden. Unsere Kasse Fernseher ist in diesem Sinn eine abstrakte Klasse, weil sich in den Bauplänen für Fernseher lediglich der Name für die Methode Helligkeit ändern vermerkt ist. Alles andere wäre ja auch Unsinn, denn erst in den abgeleiteten Klassen, wie CRT-Fernseher, kann ein konkreter Bauplan für diese Methode angegeben werden, denn dieser dürfte ja beispielsweise bei der Klasse LCD- Fernseher völlig anders aussehen! Klassen beschreiben also die gemeinsamen Eigenschaften und Methoden einer Menge von gleichartigen Objekten. Durch die Klassendefinition werden Vorlagen (Stempel!) für die nötigen Speicherreservierungen der zu erzeugenden Objekte erstellt. 449

9 Objekte sind also die konkreten erzeugten Exemplare einer Klasse. In unserem Beispiel ist also der reale, mit Händen zu greifende CRT-Fernseher, 40 Zoll ein Objekt der Klasse CRT-Fernseher. Es kann viele verschiedene Objekte einer Klasse geben. Sie haben gerade eben erfahren, dass ein Objekt Platz im Speicher benötigt. Diesen Platz besorgt der Konstruktor der Klasse. Wird das Objekt nicht mehr benötigt, sorgt der Destruktor dafür, dass der Platz wieder freigegeben wird. Verwendet man als Programmiersprache C#, so hat man mit den beiden nicht viel zu tun. Der Garbage Collector sorgt von Zeit zu Zeit automatisch dafür, dass nicht mehr benötigte Exemplare gelöscht werden. Ruft man in C# keinen Konstrukor auf, so wird bei der Bildung eines Exemplars automatisch ein Standard-Konstruktor aufgerufen. Will man allerdings bei der Erzeugung des Objekts einige Eigenschaften initialisieren, so überschreibt (siehe nächster Abschnitt) man den Standard-Konstruktor. Damit Sie nicht vor lauter neuen Begriffen den Überblick verlieren, wollen wir mit Hilfe der UML etwas mehr Anschauung ins Spiel bringen. Wir verwenden das schon oben erwähnte Programm UMLed. Damit kann man anschaulich Klassen und ihre Beziehungen darstellen (siehe UML-Bild oben). Das Programm kann allerdings noch mehr: Hat man eine korrekte Klasse als Diagramm erstellt, so bekommt man den dazugehörigen Quelltext für diese Klasse. (In Delphi oder in Java!) Der Programmcode von C# ähnelt sehr stark dem Java-Code. Daher nutzen wir die den Export. Das obige Beispiel sieht in Java so aus: /** * import-liste * ggf. weiter von Hand anpassen */ public abstract class Fernseher { /** * Attribute der Klasse */ public int Bildschirmdiagonale; protected int Kanal; private int Helligkeit; private int Lautstaerke; 450

10 /** * Attribute die aus Beziehungen resultieren */ /** * Fernseher: Methoden */ /********* Fernseher (public) ******************************************/ public Fernseher(int Bildschirmdiagonale) { //hier ggf. Code ergänzen } /********* SetzeHelligkeit (public) ************************************/ public void SetzeHelligkeit(int phelligkeit) { Helligkeit = phelligkeit } /********* SetzeKanal (public) *****************************************/ public void SetzeKanal(int pkanal) { Kanal = pkanal } /********* SetzeLautstaerke (public) ***********************************/ public void SetzeLautstaerke(int plautstaerke) { Lautstaerke = plautstaerke } /********* GibHelligkeit (public) **************************************/ public int GibHelligkeit() { return Helligkeit } /********* GibKanal (public) *******************************************/ public int GibKanal() { return Kanal } /********* GibLautstaerke (public) *************************************/ public int GibLautstaerke() { return Lautstaerke } } Die braunen Textstellen sind lediglich Kommentare! Man spart also kaum Schreibarbeit. Der Vorteil solcher UML-Programme liegt in der besseren Übersicht durch die grafische Darstellung. Wenn Sie sich in Kapitel 1 mit OOP in C# beschäftigen werden, sehen Sie, dass die Unterschiede zwischen Java und C# minimal sind. 451

11 Man kann im obigen Programmfragment auch gut erkennen, dass die Zugriffsmodifizierer private, protected oder public gewählt wurden. Damit legt man die Stärke der Einschränkung, wie auf die Methoden zugegriffen werden darf fest: private : Nur von dieser Klasse aus protectet: Von allen abgeleiteten Klassen aus public: Von überall. Im Fenster rechts können Sie im Programm UMLed diese Zugriffsbeschränkungen einstellen. Den Pfeil von CRT-Fernseher zu Fernseher kann man unter unter dem Menupunkt Beziehungen hinzufügen. In diesem Fall ist es eine IST-Beziehung: Der CRT-Fernseher ist ein Fernseher. Somit erbt er alle Felder und Methoden von der Klasse Fernseher. Um den Pfeil im Diagramm unterzubringen ist etwas Übung nötig: Man muss nach der Wahl der Beziehung IST auf einen Markierungspunkt der Klasse treffen, auf der der Pfeil landen soll. Danach klickt man auf die Klasse, von der der Pfeil startet. Für die Fernbedienung im UML-Bild passt die IST-Beziehung nicht. Was soll eine Fernbedienung auch von einem Fernseher erben?! Man spricht in diesem Fall von einer HAT-Beziehung. Ein Fernseher hat eine Fernbedienung. 452

12 Aufgabe 3 Laden Sie sich aus dem Tauschverzeichnis das UMLed-Projekt Fernseher03.urd und öffnen Sie es mit dem Programm. Ergänzen Sie nun das Diagramm durch Hinzunahme der Klassen CRT-50Hz-Fernseher und LCD-100HZ-Fernseher. Lassen Sie sich den Delphicode dazu anzeigen. (Siehe Bild rechts!) Konstruieren Sie mit dem Programm ein Klassendiagramm für die Klassen Viereck, Rechteck und Quadrat. Wie würden Sie in diesem Diagramm die Klasse Trapez unterbringen? Vererbung und Polymorphie Der Begriff der Vererbung ist ein solch wesentlicher Begriff der OOP, dass er einen eigenen Abschnitt bekommt. Verstanden haben sollten Sie bis hier her folgendes: 1. Die Klasse CRT-Fernseher 100 Hz erbt von der Klasse CRT-Fernseher alle Felder und Methoden. 2. In der Klasse CRT-Fernseher 100 Hz kann man weitere Felder und Methoden deklarieren, die dann aber CRT-Fernseher nicht kennt. 3. Es muss geklärt werden, was passiert, wenn in der abgeleiteten Klasse namensgleiche Felder oder Methoden definiert werden, wie sie in der Basisklasse bereits vorhanden sind. In der Analogie: Was passiert, wenn in der Klasse CRT-Fernseher 100 Hz eine eigene Methode Helligkeit ändern formuliert und aufgerufen wird? Damit die Vererbung problemlos klappt, muss, wie oben schon angedeutet, die sogenannte IST ein/e -Bedingung gelten: CRT-Fernseher ist ein Fernseher. In diesem Sinne ist ein LCD-Fernseher kein CRT-Fernseher, kann ihn also auch nicht beerben. Was man benötigt, damit die beiden Exemplare doch etwas miteinander zutun haben, ist Ihnen klar: Eine Basisklasse Fernseher! Diese Klasse selbst ist abgeleitete Klasse der Klasse Elektrische Multimediageräte. Diese wiederum ist abgeleitet von der Klasse Elektrogeräte Die Klasse CRT-Fernseher 100 Hz verfügt daher über alle Felder und Methoden der Klasse Elektrogeräte. Nun, - sehr viele werden das nicht sein! Fallen Ihnen welche ein? Kommen wir zum dritten Punkt, der Klärung der Frage, was passiert, wenn es namensgleiche Eigenschaften oder Methoden in der Basis- wie in der abegleiteten Klasse gibt?. Dazu bemühen wir wieder die Analogie: 453

13 Entwickler haben bei der Klasse CRT-Fernseher 100 Hz ein neues und besseres Verfahren entwickelt, wie man die Helligkeit des Bildes verändern kann. Nun hat die Klasse ja schon eine Methode Helligkeit verändern geerbt. Prinzipiell gibt es nun mehrere Möglichkeiten für die Entwickler: Sie benennen die neue Methode um, - bauen also zwei Knöpfe an den Apparat, mit denen man die Helligkeit beeinflussen kann. Sie bleiben beim Namen, verstecken den zweiten Knopf (die alte Methode) aber im Gehäuse. Sie bleiben beim Namen und überschreiben die alte Methode, will heißen, sie nehmen kleinere Veränderungen dort vor. Dies ist jedoch nur möglich, wenn die alte Methode dafür vorgesehen ist. Ob die Methode dafür vorgesehen ist oder nicht, erkennt man an dem aufgedruckten Wort virtual. Allerdings müssen Sie die überschriebene Methode dann durch das Wort override kennzeichnen. Die ersten beiden Verfahren sind nicht besonders sinnvoll. Das bedeutet, dass man bei der Konstuktion der Klassen darauf achten muss, dass Methoden, die in abgeleiteten Klassen möglicherweise modifiert werden sollen, in der Basisklasse als virtual deklariert werden sollten. Wenn eine Methode überschrieben wurde, so sagt man auch, die Methode ist überlagert. Der Compiler ist in der Lage, zu erkennen, welche der überlagerten Methoden bei einem Aufruf zu verwenden ist, denn selbst beim Überschreiben bleibt die alte Methode aus der Basisklasse vorhanden und wird somit automatisch dann verwendet, wenn das aufrufende Objekt aus der Basisklasse kommt. Achtung, - nicht verwechseln: Überladen heißt eine Methode hingegen, wenn es eine namensgleiche Methode in der Klasse gibt, die aber andere Parameter entgegennimmt. Wir sollten noch die Frage klären, ob es sinnvoll ist, ob beispielsweise ein Objekt aus der abgeleiteten Klasse (mittels einer eigenen Methode) den Inhalt eines Feldes aus der Basisklasse ändern darf. Wie wir schon erkannt haben, wird der Zugriff auf Felder und Methoden durch die sogenannten Zugriffsmodifizierer geregelt. Mittels public bespielsweise kann man von überall aus auf die Felder dieser Klasse zugreifen und somit Änderungen vornehmen. Verwendet man hingegen private, so ist mit eigenen Methoden der abgeleiteten Klasse nichts zu machen. Und das ist ja auch gut so! Gibt es Situationen, in denen wir den Methoden der abgeleiteten Klassen (und nur diesen) einen exklusiven Zugang zu den Eigenschaften der Basisklasse erlauben sollten? Zurück zu unsere Analogie: Basisklasse sei CRT-Fernseher. Abgeleitete Klasse CRT-Fernseher 100 HZ. ( Die 100 Hz-Technologie wurde entwickelt, damit das Bild weniger flackert. ) Nun haben die Entwickler diesem 100 Hz-Fernseher eine Taste auf der Fernbedienung spendiert, mit der man das Bild für Filme optimieren kann. (Es werden dann bestimmte Werte für Helligkeit, Kontrast, Farbsättigung etc. eingestellt.) 454

14 Diese Methode Bild optimieren hat die Basisklasse CRT-Fernseher nicht. Wären die Eigenschaften Helligkeit, Kontrast und Farbsättigung jetzt private, dann könnte die Methode Bild optimieren (der abgeleiteten Klasse) nichts an diesen Werten ändern und die Taste funktioniert nicht. Für solche Fälle hat man den Klassen einen weiteren Zugriffsmodifizierer zur Verfügung gestellt: protected. Er erlaubt den Zugriff zu diesen Eigenschaften und Methoden nur den daraus abgeleiteten Klassen. Bleibt zu klären, was man in der OOP unter Polymorphie versteht. Wie oben: Basisklasse ist CRT-Fernseher. Abgeleitete Klasse CRT-Fernseher 100 HZ. Daraus wiederum wird die Klasse CRT-Fernseher 100 Hz Flatscreen abgeleitet. Alle haben die Methode Helligkeit ändern. Nehmen wir an, dass in den beiden abgeleiteten Klassen die Methode überschrieben wurde. Vermutlich haben die Entwickler im Laufe der Zeit immer bessere Methoden entwickelt. Aber: Leider funktioniern die Helligkeit ändern -Methoden der abgeleiteten Klassen nicht in den Basisklassen wie gewünscht. Das heißt: Eine Kontrollinstanz (Compiler) muss wissen, welche Methode denn nun bei einem bestimmten Fernseher (Objekt) anzuwenden ist. Und das war s schon: Diese Fähigkeit nennt man Polymorphie. Nicht alle Programmiersprachen sind polymorph. Viele Programmiersprachen wie z.b. Pascal und Basic verlangen, dass für jede Art von Listen eine Methode speziell für diese Art von Eigenschaften programmiert wird. Nichtpolymorphe Programmiersprachen haben die folgenden Nachteile: 1. Die Nichtpolymorphie vergrößert unnötig die Programme und trägt dazu bei, sie unübersichtlich zu machen. 2. Die Nichtpolymorphie erschwert die Wartung von Programmen, weil derselbe Algorithmus in verschiedenen Prozeduren verbessert werden muss. Die Polymorphie stellt also eine Abstraktion dar, die in Programmiersprachen äußerst wünschenswert ist. Vielleicht denken Sie jetzt, dass das Überladen einer Methode ja auch eine Art der Polymorphie ist. Sie haben recht: Man nennt es daher auch: parametrische Polymorphie. 455

15 Aufgabe 4 Wie Sie zweifellos bemerkt haben, wurde in diesem Kapitel 5.01, beinahe losgelöst von jeder konkreten Programmiersprache, eine Theorie über die Anforderungen an eine solche Sprache dargelegt. Stellen Sie sich nun vor, Sie wollen einem Freund, der bisher nur in Basic, C oder Pascal (strukuriert!) programmiert hat, eine kurze Erklärung geben, was man unter OOP versteht. Führen Sie diese Aufgabe in Partnerarbeit durch. Einer übernimmt den Part des Erklärenden, der Andere den des ahnungslosen Zuhörers. Am Ende wird der Zuhörer zum Kritiker und stellt nun seine Sicht der Dinge dar. Für den Fall, dass Sie unsicher sind schauen Sie im Skript nach oder schauen hier: Was die Sache am Anfang so schwierig macht, sind die Fülle der neuen Begriffe und natürlich auch der relativ hohe Abstrakionsgrad. Aus diesem Grund werden Sie nun selbst erste Erfahrungen mit der OOP machen. Und zwar auf einem Gebiet, dass Ihnen von der Unterstufe an vertraut sein sollte: Der Geometrie. Die Fachbereiche Mathematik und Dikaktik der Universität Bayreuth haben schon vor einigen Jahren ein auf Java laufendes Programm namens GEONExT entwickelt. Das Programm kann hier (inklusive der Java-Umgebung) runtergeladen werden: (Sie können es auch aus dem Tauschverzeichnis laden). Allerdings ist es auch auf einem Browser ohne vorherige Installation lauffähig, sofern man eine aktuelle Java Laufzeitumgebung installiert hat. Im folgenden Bild ist das Fenster des Programms zu sehen. 456

16 Natürlich wollen wir hier keine Geometrie machen. Wir wollen der OOP auf die Spur kommen. Und genau zu diesem Zweck wurde ebenfalls an diesem Lehrstuhl ein Tutorial für OOP auf der Basis von GEONExT entwickelt. Wie Sie unten sehen können, sind hierfür 8 Stationen zu durch laufen. Beachten Sie bitte, dass in GEONExT Felder Attribute genannt werden! Attributwerte sind dann natürlich (Daten-) Inhalte der Felder. Aufgabe 5 Laden Sie sich das Tutorial aus dem Tauschverzeichnis in das Homeverzeichnis. Doppelklicken Sie die Datei start.htm. Der Zeitbedarf für das gesamte Tutorial beträgt ca. 2 Stunden. Die Stationen 1 und 2 erkunden Sie alleine. Für die Stationen 3 bis 5 arbeiten Sie mit einem Partner. Station 6 ist Hausaufgabe. Auch wenn Ihnen nach der obigen Aufgabe nun doch einiges klarer geworden ist, sollen Sie beachten, dass das vorliegende Kapitel 5.01 ist insbesondere auch dafür gedacht ist, dass Sie, wenn es nachher ans konkrete Programmieren geht, bei Unsicherheit bezüglich eines bestimmten Begriffs der OOP, hier nachsehen können! 457

Arbeiten mit UMLed und Delphi

Arbeiten mit UMLed und Delphi Arbeiten mit UMLed und Delphi Diese Anleitung soll zeigen, wie man Klassen mit dem UML ( Unified Modeling Language ) Editor UMLed erstellt, in Delphi exportiert und dort so einbindet, dass diese (bis auf

Mehr

Objektorientierte Programmierung für Anfänger am Beispiel PHP

Objektorientierte Programmierung für Anfänger am Beispiel PHP Objektorientierte Programmierung für Anfänger am Beispiel PHP Johannes Mittendorfer http://jmittendorfer.hostingsociety.com 19. August 2012 Abstract Dieses Dokument soll die Vorteile der objektorientierten

Mehr

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf http://informatik.swoke.de. Seite 1 von 22

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf http://informatik.swoke.de. Seite 1 von 22 Kapitel 19 Vererbung, UML Seite 1 von 22 Vererbung - Neben der Datenabstraktion und der Datenkapselung ist die Vererbung ein weiteres Merkmal der OOP. - Durch Vererbung werden die Methoden und die Eigenschaften

Mehr

Diese Ansicht erhalten Sie nach der erfolgreichen Anmeldung bei Wordpress.

Diese Ansicht erhalten Sie nach der erfolgreichen Anmeldung bei Wordpress. Anmeldung http://www.ihredomain.de/wp-admin Dashboard Diese Ansicht erhalten Sie nach der erfolgreichen Anmeldung bei Wordpress. Das Dashboard gibt Ihnen eine kurze Übersicht, z.b. Anzahl der Beiträge,

Mehr

Handbuch Fischertechnik-Einzelteiltabelle V3.7.3

Handbuch Fischertechnik-Einzelteiltabelle V3.7.3 Handbuch Fischertechnik-Einzelteiltabelle V3.7.3 von Markus Mack Stand: Samstag, 17. April 2004 Inhaltsverzeichnis 1. Systemvorraussetzungen...3 2. Installation und Start...3 3. Anpassen der Tabelle...3

Mehr

Stellen Sie bitte den Cursor in die Spalte B2 und rufen die Funktion Sverweis auf. Es öffnet sich folgendes Dialogfenster

Stellen Sie bitte den Cursor in die Spalte B2 und rufen die Funktion Sverweis auf. Es öffnet sich folgendes Dialogfenster Es gibt in Excel unter anderem die so genannten Suchfunktionen / Matrixfunktionen Damit können Sie Werte innerhalb eines bestimmten Bereichs suchen. Als Beispiel möchte ich die Funktion Sverweis zeigen.

Mehr

mysql - Clients MySQL - Abfragen eine serverbasierenden Datenbank

mysql - Clients MySQL - Abfragen eine serverbasierenden Datenbank mysql - Clients MySQL - Abfragen eine serverbasierenden Datenbank In den ersten beiden Abschnitten (rbanken1.pdf und rbanken2.pdf) haben wir uns mit am Ende mysql beschäftigt und kennengelernt, wie man

Mehr

Was man mit dem Computer alles machen kann

Was man mit dem Computer alles machen kann Was man mit dem Computer alles machen kann Wie komme ich ins Internet? Wenn Sie einen Computer zu Hause haben. Wenn Sie das Internet benutzen möchten, dann brauchen Sie ein eigenes Programm dafür. Dieses

Mehr

Der Kalender im ipad

Der Kalender im ipad Der Kalender im ipad Wir haben im ipad, dem ipod Touch und dem iphone, sowie auf dem PC in der Cloud einen Kalender. Die App ist voreingestellt, man braucht sie nicht laden. So macht es das ipad leicht,

Mehr

Leichte-Sprache-Bilder

Leichte-Sprache-Bilder Leichte-Sprache-Bilder Reinhild Kassing Information - So geht es 1. Bilder gucken 2. anmelden für Probe-Bilder 3. Bilder bestellen 4. Rechnung bezahlen 5. Bilder runterladen 6. neue Bilder vorschlagen

Mehr

Tutorial: Wie kann ich Dokumente verwalten?

Tutorial: Wie kann ich Dokumente verwalten? Tutorial: Wie kann ich Dokumente verwalten? Im vorliegenden Tutorial lernen Sie, wie Sie in myfactory Dokumente verwalten können. Dafür steht Ihnen in myfactory eine Dokumenten-Verwaltung zur Verfügung.

Mehr

Datensicherung. Beschreibung der Datensicherung

Datensicherung. Beschreibung der Datensicherung Datensicherung Mit dem Datensicherungsprogramm können Sie Ihre persönlichen Daten problemlos Sichern. Es ist möglich eine komplette Datensicherung durchzuführen, aber auch nur die neuen und geänderten

Mehr

WordPress. Dokumentation

WordPress. Dokumentation WordPress Dokumentation Backend-Login In das Backend gelangt man, indem man hinter seiner Website-URL einfach ein /wp-admin dranhängt www.domain.tld/wp-admin Dabei gelangt man auf die Administrationsoberfläche,

Mehr

Anleitung über den Umgang mit Schildern

Anleitung über den Umgang mit Schildern Anleitung über den Umgang mit Schildern -Vorwort -Wo bekommt man Schilder? -Wo und wie speichert man die Schilder? -Wie füge ich die Schilder in meinen Track ein? -Welche Bauteile kann man noch für Schilder

Mehr

Outlook. sysplus.ch outlook - mail-grundlagen Seite 1/8. Mail-Grundlagen. Posteingang

Outlook. sysplus.ch outlook - mail-grundlagen Seite 1/8. Mail-Grundlagen. Posteingang sysplus.ch outlook - mail-grundlagen Seite 1/8 Outlook Mail-Grundlagen Posteingang Es gibt verschiedene Möglichkeiten, um zum Posteingang zu gelangen. Man kann links im Outlook-Fenster auf die Schaltfläche

Mehr

EinfÅhrung in die objektorientiere Programmierung (OOP) unter Delphi 6.0. EDV Kurs 13/2

EinfÅhrung in die objektorientiere Programmierung (OOP) unter Delphi 6.0. EDV Kurs 13/2 EinfÅhrung in die objektorientiere Programmierung (OOP) unter Delphi 6.0 EDV Kurs 13/2 Inhaltsverzeichnis 1 Objekte... 1 2 Klassen... 3 2.1 Beziehungen zwischen Klassen... 4 2.1.1 Vererbung... 4 2.1.2

Mehr

Fülle das erste Bild "Erforderliche Information für das Google-Konto" vollständig aus und auch das nachfolgende Bild.

Fülle das erste Bild Erforderliche Information für das Google-Konto vollständig aus und auch das nachfolgende Bild. Erstellen eines Fotoalbum mit "Picasa"-Webalben Wie es geht kannst Du hier in kleinen Schritten nachvollziehen. Rufe im Internet folgenden "LINK" auf: http://picasaweb.google.com Jetzt musst Du folgendes

Mehr

Er musste so eingerichtet werden, dass das D-Laufwerk auf das E-Laufwerk gespiegelt

Er musste so eingerichtet werden, dass das D-Laufwerk auf das E-Laufwerk gespiegelt Inhaltsverzeichnis Aufgabe... 1 Allgemein... 1 Active Directory... 1 Konfiguration... 2 Benutzer erstellen... 3 Eigenes Verzeichnis erstellen... 3 Benutzerkonto erstellen... 3 Profil einrichten... 5 Berechtigungen

Mehr

Folge 18 - Vererbung

Folge 18 - Vererbung Workshop Folge 18 - Vererbung 18.1 Ein einfacher Fall der Vererbung Schritt 1 - Vorbereitungen Besorgen Sie sich - vielleicht aus einer der Übungen der Folge 17 - ein fertiges und lauffähiges Listenprojekt,

Mehr

Tutorial - www.root13.de

Tutorial - www.root13.de Tutorial - www.root13.de Netzwerk unter Linux einrichten (SuSE 7.0 oder höher) Inhaltsverzeichnis: - Netzwerk einrichten - Apache einrichten - einfaches FTP einrichten - GRUB einrichten Seite 1 Netzwerk

Mehr

Objektorientierte Programmierung OOP

Objektorientierte Programmierung OOP Objektorientierte Programmierung OOP Objektorientierte Programmierung OOP Ronja Düffel WS2012/13 08. Oktober 2013 Objektorientierte Programmierung OOP Objektorientierte Programmierung Objektorientierte

Mehr

Handbuch zur Anlage von Turnieren auf der NÖEV-Homepage

Handbuch zur Anlage von Turnieren auf der NÖEV-Homepage Handbuch zur Anlage von Turnieren auf der NÖEV-Homepage Inhaltsverzeichnis 1. Anmeldung... 2 1.1 Startbildschirm... 3 2. Die PDF-Dateien hochladen... 4 2.1 Neue PDF-Datei erstellen... 5 3. Obelix-Datei

Mehr

Ordner Berechtigung vergeben Zugriffsrechte unter Windows einrichten

Ordner Berechtigung vergeben Zugriffsrechte unter Windows einrichten Ordner Berechtigung vergeben Zugriffsrechte unter Windows einrichten Was sind Berechtigungen? Unter Berechtigungen werden ganz allgemein die Zugriffsrechte auf Dateien und Verzeichnisse (Ordner) verstanden.

Mehr

S/W mit PhotoLine. Inhaltsverzeichnis. PhotoLine

S/W mit PhotoLine. Inhaltsverzeichnis. PhotoLine PhotoLine S/W mit PhotoLine Erstellt mit Version 16.11 Ich liebe Schwarzweiß-Bilder und schaue mir neidisch die Meisterwerke an, die andere Fotografen zustande bringen. Schon lange versuche ich, auch so

Mehr

1 Mathematische Grundlagen

1 Mathematische Grundlagen Mathematische Grundlagen - 1-1 Mathematische Grundlagen Der Begriff der Menge ist einer der grundlegenden Begriffe in der Mathematik. Mengen dienen dazu, Dinge oder Objekte zu einer Einheit zusammenzufassen.

Mehr

Programmieren in Java

Programmieren in Java Programmieren in Java objektorientierte Programmierung 2 2 Zusammenhang Klasse-Datei In jeder *.java Datei kann es genau eine public-klasse geben wobei Klassen- und Dateiname übereinstimmen. Es können

Mehr

Kleines Handbuch zur Fotogalerie der Pixel AG

Kleines Handbuch zur Fotogalerie der Pixel AG 1 1. Anmelden an der Galerie Um mit der Galerie arbeiten zu können muss man sich zuerst anmelden. Aufrufen der Galerie entweder über die Homepage (www.pixel-ag-bottwartal.de) oder über den direkten Link

Mehr

Fachdidaktik der Informatik 18.12.08 Jörg Depner, Kathrin Gaißer

Fachdidaktik der Informatik 18.12.08 Jörg Depner, Kathrin Gaißer Fachdidaktik der Informatik 18.12.08 Jörg Depner, Kathrin Gaißer Klassendiagramme Ein Klassendiagramm dient in der objektorientierten Softwareentwicklung zur Darstellung von Klassen und den Beziehungen,

Mehr

SANDBOXIE konfigurieren

SANDBOXIE konfigurieren SANDBOXIE konfigurieren für Webbrowser und E-Mail-Programme Dies ist eine kurze Anleitung für die grundlegenden folgender Programme: Webbrowser: Internet Explorer, Mozilla Firefox und Opera E-Mail-Programme:

Mehr

L10N-Manager 3. Netzwerktreffen der Hochschulübersetzer/i nnen Mannheim 10. Mai 2016

L10N-Manager 3. Netzwerktreffen der Hochschulübersetzer/i nnen Mannheim 10. Mai 2016 L10N-Manager 3. Netzwerktreffen der Hochschulübersetzer/i nnen Mannheim 10. Mai 2016 Referentin: Dr. Kelly Neudorfer Universität Hohenheim Was wir jetzt besprechen werden ist eine Frage, mit denen viele

Mehr

Erklärung zu den Internet-Seiten von www.bmas.de

Erklärung zu den Internet-Seiten von www.bmas.de Erklärung zu den Internet-Seiten von www.bmas.de Herzlich willkommen! Sie sind auf der Internet-Seite vom Bundes-Ministerium für Arbeit und Soziales. Die Abkürzung ist: BMAS. Darum heißt die Seite auch

Mehr

Das Leitbild vom Verein WIR

Das Leitbild vom Verein WIR Das Leitbild vom Verein WIR Dieses Zeichen ist ein Gütesiegel. Texte mit diesem Gütesiegel sind leicht verständlich. Leicht Lesen gibt es in drei Stufen. B1: leicht verständlich A2: noch leichter verständlich

Mehr

Anwendungsbeispiele. Neuerungen in den E-Mails. Webling ist ein Produkt der Firma:

Anwendungsbeispiele. Neuerungen in den E-Mails. Webling ist ein Produkt der Firma: Anwendungsbeispiele Neuerungen in den E-Mails Webling ist ein Produkt der Firma: Inhaltsverzeichnis 1 Neuerungen in den E- Mails 2 Was gibt es neues? 3 E- Mail Designs 4 Bilder in E- Mails einfügen 1 Neuerungen

Mehr

Kommunikations-Management

Kommunikations-Management Tutorial: Wie importiere und exportiere ich Daten zwischen myfactory und Outlook? Im vorliegenden Tutorial lernen Sie, wie Sie in myfactory Daten aus Outlook importieren Daten aus myfactory nach Outlook

Mehr

40-Tage-Wunder- Kurs. Umarme, was Du nicht ändern kannst.

40-Tage-Wunder- Kurs. Umarme, was Du nicht ändern kannst. 40-Tage-Wunder- Kurs Umarme, was Du nicht ändern kannst. Das sagt Wikipedia: Als Wunder (griechisch thauma) gilt umgangssprachlich ein Ereignis, dessen Zustandekommen man sich nicht erklären kann, so dass

Mehr

! " # $ " % & Nicki Wruck worldwidewruck 08.02.2006

!  # $  % & Nicki Wruck worldwidewruck 08.02.2006 !"# $ " %& Nicki Wruck worldwidewruck 08.02.2006 Wer kennt die Problematik nicht? Die.pst Datei von Outlook wird unübersichtlich groß, das Starten und Beenden dauert immer länger. Hat man dann noch die.pst

Mehr

Professionelle Seminare im Bereich MS-Office

Professionelle Seminare im Bereich MS-Office Der Name BEREICH.VERSCHIEBEN() ist etwas unglücklich gewählt. Man kann mit der Funktion Bereiche zwar verschieben, man kann Bereiche aber auch verkleinern oder vergrößern. Besser wäre es, die Funktion

Mehr

Objektorientierte Programmierung

Objektorientierte Programmierung Objektorientierte Programmierung 1 Geschichte Dahl, Nygaard: Simula 67 (Algol 60 + Objektorientierung) Kay et al.: Smalltalk (erste rein-objektorientierte Sprache) Object Pascal, Objective C, C++ (wiederum

Mehr

Inhalt. 1 Einleitung AUTOMATISCHE DATENSICHERUNG AUF EINEN CLOUDSPEICHER

Inhalt. 1 Einleitung AUTOMATISCHE DATENSICHERUNG AUF EINEN CLOUDSPEICHER AUTOMATISCHE DATENSICHERUNG AUF EINEN CLOUDSPEICHER Inhalt 1 Einleitung... 1 2 Einrichtung der Aufgabe für die automatische Sicherung... 2 2.1 Die Aufgabenplanung... 2 2.2 Der erste Testlauf... 9 3 Problembehebung...

Mehr

Bilder zum Upload verkleinern

Bilder zum Upload verkleinern Seite 1 von 9 Bilder zum Upload verkleinern Teil 1: Maße der Bilder verändern Um Bilder in ihren Abmessungen zu verkleinern benutze ich die Freeware Irfan View. Die Software biete zwar noch einiges mehr

Mehr

Kommunikations-Management

Kommunikations-Management Tutorial: Wie kann ich E-Mails schreiben? Im vorliegenden Tutorial lernen Sie, wie Sie in myfactory E-Mails schreiben können. In myfactory können Sie jederzeit schnell und einfach E-Mails verfassen egal

Mehr

Einrichtung des Cisco VPN Clients (IPSEC) in Windows7

Einrichtung des Cisco VPN Clients (IPSEC) in Windows7 Einrichtung des Cisco VPN Clients (IPSEC) in Windows7 Diese Verbindung muss einmalig eingerichtet werden und wird benötigt, um den Zugriff vom privaten Rechner oder der Workstation im Home Office über

Mehr

Tutorial: Gnumeric installieren und Jahres-Kostenübersicht erstellen mit Diagramm

Tutorial: Gnumeric installieren und Jahres-Kostenübersicht erstellen mit Diagramm Gnumeric Mittwoch, 8. Mai 2013 01:05 Tutorial: Gnumeric installieren und Jahres-Kostenübersicht erstellen mit Diagramm In diesem Tutorial will ich Ihnen zeigen, wie man Gnumeric installiert und wie man

Mehr

Robot Karol für Delphi

Robot Karol für Delphi Robot Karol für Delphi Reinhard Nitzsche, OSZ Handel I Version 0.1 vom 24. Januar 2003 Zusammenfassung Nach der Einführung in die (variablenfreie) Programmierung mit Robot Karol von Freiberger und Krško

Mehr

Lernwerkstatt 9 privat- Freischaltung

Lernwerkstatt 9 privat- Freischaltung Was tun, wenn mein Rechner immer wieder die Freischaltung der Lernwerkstatt 9 privat verliert und ich die Ursache dafür nicht finden kann? Normalerweise genügt es, genau eine einzige online-freischaltung

Mehr

Novell Client. Anleitung. zur Verfügung gestellt durch: ZID Dezentrale Systeme. Februar 2015. ZID Dezentrale Systeme

Novell Client. Anleitung. zur Verfügung gestellt durch: ZID Dezentrale Systeme. Februar 2015. ZID Dezentrale Systeme Novell Client Anleitung zur Verfügung gestellt durch: ZID Dezentrale Systeme Februar 2015 Seite 2 von 8 Mit der Einführung von Windows 7 hat sich die Novell-Anmeldung sehr stark verändert. Der Novell Client

Mehr

CSS-Grundlagen. Etwas über Browser. Kapitel. Die Vorbereitung

CSS-Grundlagen. Etwas über Browser. Kapitel. Die Vorbereitung Kapitel 1 Die Vorbereitung Vorgängerversionen. Bald darauf folgte dann schon die Version 4, die mit einer kleinen Bearbeitung bis vor Kurzem 15 Jahre unverändert gültig war. All das, was du die letzten

Mehr

Adminer: Installationsanleitung

Adminer: Installationsanleitung Adminer: Installationsanleitung phpmyadmin ist bei uns mit dem Kundenmenüpasswort geschützt. Wer einer dritten Person Zugriff auf die Datenbankverwaltung, aber nicht auf das Kundenmenü geben möchte, kann

Mehr

Viele Bilder auf der FA-Homepage

Viele Bilder auf der FA-Homepage Viele Bilder auf der FA-Homepage Standardmäßig lassen sich auf einer FA-Homepage nur 2 Bilder mit zugehörigem Text unterbringen. Sollen es mehr Bilder sein, muss man diese als von einer im Internet

Mehr

Einrichten einer Festplatte mit FDISK unter Windows 95/98/98SE/Me

Einrichten einer Festplatte mit FDISK unter Windows 95/98/98SE/Me Einrichten einer Festplatte mit FDISK unter Windows 95/98/98SE/Me Bevor Sie die Platte zum ersten Mal benutzen können, muss sie noch partitioniert und formatiert werden! Vorher zeigt sich die Festplatte

Mehr

Urlaubsregel in David

Urlaubsregel in David Urlaubsregel in David Inhaltsverzeichnis KlickDown Beitrag von Tobit...3 Präambel...3 Benachrichtigung externer Absender...3 Erstellen oder Anpassen des Anworttextes...3 Erstellen oder Anpassen der Auto-Reply-Regel...5

Mehr

Vorkurs C++ Programmierung

Vorkurs C++ Programmierung Vorkurs C++ Programmierung Klassen Letzte Stunde Speicherverwaltung automatische Speicherverwaltung auf dem Stack dynamische Speicherverwaltung auf dem Heap new/new[] und delete/delete[] Speicherklassen:

Mehr

Jederzeit Ordnung halten

Jederzeit Ordnung halten Kapitel Jederzeit Ordnung halten 6 auf Ihrem Mac In diesem Buch war bereits einige Male vom Finder die Rede. Dieses Kapitel wird sich nun ausführlich diesem so wichtigen Programm widmen. Sie werden das

Mehr

Suche schlecht beschriftete Bilder mit Eigenen Abfragen

Suche schlecht beschriftete Bilder mit Eigenen Abfragen Suche schlecht beschriftete Bilder mit Eigenen Abfragen Ist die Bilderdatenbank über einen längeren Zeitraum in Benutzung, so steigt die Wahrscheinlichkeit für schlecht beschriftete Bilder 1. Insbesondere

Mehr

Arbeiten mit dem Outlook Add-In

Arbeiten mit dem Outlook Add-In Arbeiten mit dem Outlook Add-In Das Outlook Add-In ermöglicht Ihnen das Speichern von Emails im Aktenlebenslauf einer Akte. Außerdem können Sie Namen direkt aus BS in Ihre Outlook-Kontakte übernehmen sowie

Mehr

Punkt 1 bis 11: -Anmeldung bei Schlecker und 1-8 -Herunterladen der Software

Punkt 1 bis 11: -Anmeldung bei Schlecker und 1-8 -Herunterladen der Software Wie erzeugt man ein Fotobuch im Internet bei Schlecker Seite Punkt 1 bis 11: -Anmeldung bei Schlecker und 1-8 -Herunterladen der Software Punkt 12 bis 24: -Wir arbeiten mit der Software 8-16 -Erstellung

Mehr

Nach der Anmeldung im Backend Bereich landen Sie im Kontrollzentrum, welches so aussieht:

Nach der Anmeldung im Backend Bereich landen Sie im Kontrollzentrum, welches so aussieht: Beiträge erstellen in Joomla Nach der Anmeldung im Backend Bereich landen Sie im Kontrollzentrum, welches so aussieht: Abbildung 1 - Kontrollzentrum Von hier aus kann man zu verschiedene Einstellungen

Mehr

Im Folgenden wird Ihnen an einem Beispiel erklärt, wie Sie Excel-Anlagen und Excel-Vorlagen erstellen können.

Im Folgenden wird Ihnen an einem Beispiel erklärt, wie Sie Excel-Anlagen und Excel-Vorlagen erstellen können. Excel-Schnittstelle Im Folgenden wird Ihnen an einem Beispiel erklärt, wie Sie Excel-Anlagen und Excel-Vorlagen erstellen können. Voraussetzung: Microsoft Office Excel ab Version 2000 Zum verwendeten Beispiel:

Mehr

Primzahlen und RSA-Verschlüsselung

Primzahlen und RSA-Verschlüsselung Primzahlen und RSA-Verschlüsselung Michael Fütterer und Jonathan Zachhuber 1 Einiges zu Primzahlen Ein paar Definitionen: Wir bezeichnen mit Z die Menge der positiven und negativen ganzen Zahlen, also

Mehr

Berechtigungen im Kalender Anleitung für die Rechtevergabe im Outlook Kalender 2010. FHNW, Services, ICT

Berechtigungen im Kalender Anleitung für die Rechtevergabe im Outlook Kalender 2010. FHNW, Services, ICT Berechtigungen im Kalender Anleitung für die Rechtevergabe im Outlook Kalender 2010 FHNW, Services, ICT Windisch, März 2013 Berechtigungen im Kalender 1 1 Gruppen 3 1.1 Die Gruppe/der Benutzer Standard

Mehr

Einstellungen im Internet-Explorer (IE) (Stand 11/2013) für die Arbeit mit IOS2000 und DIALOG

Einstellungen im Internet-Explorer (IE) (Stand 11/2013) für die Arbeit mit IOS2000 und DIALOG Einstellungen im Internet-Explorer (IE) (Stand 11/2013) für die Arbeit mit IOS2000 und DIALOG Um mit IOS2000/DIALOG arbeiten zu können, benötigen Sie einen Webbrowser. Zurzeit unterstützen wir ausschließlich

Mehr

Die Beschreibung bezieht sich auf die Version Dreamweaver 4.0. In der Version MX ist die Sitedefinition leicht geändert worden.

Die Beschreibung bezieht sich auf die Version Dreamweaver 4.0. In der Version MX ist die Sitedefinition leicht geändert worden. In einer Website haben Seiten oft das gleiche Layout. Speziell beim Einsatz von Tabellen, in denen die Navigation auf der linken oder rechten Seite, oben oder unten eingesetzt wird. Diese Anteile der Website

Mehr

Adobe Photoshop. Lightroom 5 für Einsteiger Bilder verwalten und entwickeln. Sam Jost

Adobe Photoshop. Lightroom 5 für Einsteiger Bilder verwalten und entwickeln. Sam Jost Adobe Photoshop Lightroom 5 für Einsteiger Bilder verwalten und entwickeln Sam Jost Kapitel 2 Der erste Start 2.1 Mitmachen beim Lesen....................... 22 2.2 Für Apple-Anwender.........................

Mehr

Speichern. Speichern unter

Speichern. Speichern unter Speichern Speichern unter Speichern Auf einem PC wird ständig gespeichert. Von der Festplatte in den Arbeitspeicher und zurück Beim Download Beim Kopieren Beim Aufruf eines Programms Beim Löschen Beim

Mehr

Artikel Schnittstelle über CSV

Artikel Schnittstelle über CSV Artikel Schnittstelle über CSV Sie können Artikeldaten aus Ihrem EDV System in das NCFOX importieren, dies geschieht durch eine CSV Schnittstelle. Dies hat mehrere Vorteile: Zeitersparnis, die Karteikarte

Mehr

Leitfaden zur ersten Nutzung der R FOM Portable-Version für Windows (Version 1.0)

Leitfaden zur ersten Nutzung der R FOM Portable-Version für Windows (Version 1.0) Leitfaden zur ersten Nutzung der R FOM Portable-Version für Windows (Version 1.0) Peter Koos 03. Dezember 2015 0 Inhaltsverzeichnis 1 Voraussetzung... 3 2 Hintergrundinformationen... 3 2.1 Installationsarten...

Mehr

Printserver und die Einrichtung von TCP/IP oder LPR Ports

Printserver und die Einrichtung von TCP/IP oder LPR Ports Printserver und die Einrichtung von TCP/IP oder LPR Ports In der Windowswelt werden Drucker auf Printservern mit 2 Arten von Ports eingerichtet. LPR-Ports (Port 515) oder Standard TCP/IP (Port 9100, 9101,9102)

Mehr

AutoCAD 2007 - Dienstprogramm zur Lizenzübertragung

AutoCAD 2007 - Dienstprogramm zur Lizenzübertragung AutoCAD 2007 - Dienstprogramm zur Lizenzübertragung Problem: Um AutoCAD abwechselnd auf mehreren Rechnern einsetzen zu können konnte man bis AutoCAD 2000 einfach den Dongle umstecken. Seit AutoCAD 2000i

Mehr

Nicht kopieren. Der neue Report von: Stefan Ploberger. 1. Ausgabe 2003

Nicht kopieren. Der neue Report von: Stefan Ploberger. 1. Ausgabe 2003 Nicht kopieren Der neue Report von: Stefan Ploberger 1. Ausgabe 2003 Herausgeber: Verlag Ploberger & Partner 2003 by: Stefan Ploberger Verlag Ploberger & Partner, Postfach 11 46, D-82065 Baierbrunn Tel.

Mehr

In diesem Tutorial lernen Sie, wie Sie einen Termin erfassen und verschiedene Einstellungen zu einem Termin vornehmen können.

In diesem Tutorial lernen Sie, wie Sie einen Termin erfassen und verschiedene Einstellungen zu einem Termin vornehmen können. Tutorial: Wie erfasse ich einen Termin? In diesem Tutorial lernen Sie, wie Sie einen Termin erfassen und verschiedene Einstellungen zu einem Termin vornehmen können. Neben den allgemeinen Angaben zu einem

Mehr

Serienbrief erstellen

Serienbrief erstellen Serienbrief erstellen Mit einem perfekt vorbereiteten Serienbrief können Sie viel Zeit sparen. In unserem Beispiel lesen wir die Daten für unseren Serienbrief aus einer Excel Tabelle aus. Die Tabelle hat

Mehr

Objektorientierte Programmierung. Kapitel 12: Interfaces

Objektorientierte Programmierung. Kapitel 12: Interfaces 12. Interfaces 1/14 Objektorientierte Programmierung Kapitel 12: Interfaces Stefan Brass Martin-Luther-Universität Halle-Wittenberg Wintersemester 2012/13 http://www.informatik.uni-halle.de/ brass/oop12/

Mehr

Windows. Workshop Internet-Explorer: Arbeiten mit Favoriten, Teil 1

Windows. Workshop Internet-Explorer: Arbeiten mit Favoriten, Teil 1 Workshop Internet-Explorer: Arbeiten mit Favoriten, Teil 1 Wenn der Name nicht gerade www.buch.de oder www.bmw.de heißt, sind Internetadressen oft schwer zu merken Deshalb ist es sinnvoll, die Adressen

Mehr

Advoware mit VPN Zugriff lokaler Server / PC auf externe Datenbank

Advoware mit VPN Zugriff lokaler Server / PC auf externe Datenbank Advoware mit VPN Zugriff lokaler Server / PC auf externe Datenbank Die Entscheidung Advoware über VPN direkt auf dem lokalen PC / Netzwerk mit Zugriff auf die Datenbank des zentralen Servers am anderen

Mehr

Flyer, Sharepics usw. mit LibreOffice oder OpenOffice erstellen

Flyer, Sharepics usw. mit LibreOffice oder OpenOffice erstellen Flyer, Sharepics usw. mit LibreOffice oder OpenOffice erstellen Wir wollen, dass ihr einfach für eure Ideen und Vorschläge werben könnt. Egal ob in ausgedruckten Flyern, oder in sozialen Netzwerken und

Mehr

Mit der Maus im Menü links auf den Menüpunkt 'Seiten' gehen und auf 'Erstellen klicken.

Mit der Maus im Menü links auf den Menüpunkt 'Seiten' gehen und auf 'Erstellen klicken. Seite erstellen Mit der Maus im Menü links auf den Menüpunkt 'Seiten' gehen und auf 'Erstellen klicken. Es öffnet sich die Eingabe Seite um eine neue Seite zu erstellen. Seiten Titel festlegen Den neuen

Mehr

Einkaufslisten verwalten. Tipps & Tricks

Einkaufslisten verwalten. Tipps & Tricks Tipps & Tricks INHALT SEITE 1.1 Grundlegende Informationen 3 1.2 Einkaufslisten erstellen 4 1.3 Artikel zu einer bestehenden Einkaufsliste hinzufügen 9 1.4 Mit einer Einkaufslisten einkaufen 12 1.4.1 Alle

Mehr

Datenbanken Kapitel 2

Datenbanken Kapitel 2 Datenbanken Kapitel 2 1 Eine existierende Datenbank öffnen Eine Datenbank, die mit Microsoft Access erschaffen wurde, kann mit dem gleichen Programm auch wieder geladen werden: Die einfachste Methode ist,

Mehr

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen Binäre Bäume 1. Allgemeines Binäre Bäume werden grundsätzlich verwendet, um Zahlen der Größe nach, oder Wörter dem Alphabet nach zu sortieren. Dem einfacheren Verständnis zu Liebe werde ich mich hier besonders

Mehr

Anleitung zum Login. über die Mediteam- Homepage und zur Pflege von Praxisnachrichten

Anleitung zum Login. über die Mediteam- Homepage und zur Pflege von Praxisnachrichten Anleitung zum Login über die Mediteam- Homepage und zur Pflege von Praxisnachrichten Stand: 18.Dezember 2013 1. Was ist der Mediteam-Login? Alle Mediteam-Mitglieder können kostenfrei einen Login beantragen.

Mehr

Animationen erstellen

Animationen erstellen Animationen erstellen Unter Animation wird hier das Erscheinen oder Bewegen von Objekten Texten und Bildern verstanden Dazu wird zunächst eine neue Folie erstellt : Einfügen/ Neue Folie... Das Layout Aufzählung

Mehr

Gruppenrichtlinien und Softwareverteilung

Gruppenrichtlinien und Softwareverteilung Gruppenrichtlinien und Softwareverteilung Ergänzungen zur Musterlösung Bitte lesen Sie zuerst die gesamte Anleitung durch! Vorbemerkung: Die Begriffe OU (Organizational Unit) und Raum werden in der folgenden

Mehr

Die Formatierungsregeln (die so genannte Wiki-Syntax) für Texte in DokuWiki sind zu großen Teilen die selben, wie in anderen Wiki-Systemen.

Die Formatierungsregeln (die so genannte Wiki-Syntax) für Texte in DokuWiki sind zu großen Teilen die selben, wie in anderen Wiki-Systemen. DokuWiki Kurzanleitung DokuWiki ein sehr einfach zu installierendes und anzuwendendes Wiki und bietet einige Funktionen, welche das Erstellen von Hypertexten, Dokumentationen und Präsentation von Projekten

Mehr

Anmeldung bei einem registrierten Konto (Account)

Anmeldung bei einem registrierten Konto (Account) Anmeldung bei einem registrierten Konto (Account) Aufrufen des Anmeldefensters Geben sie in die Adresszeile ihres Internet-Browsers die Adresse (http://www.quid4bid.com) ein. Sie können entweder auf die

Mehr

Grundfunktionen und Bedienung

Grundfunktionen und Bedienung Kapitel 13 Mit der App Health ist eine neue Anwendung in ios 8 enthalten, die von vorangegangenen Betriebssystemen bislang nicht geboten wurde. Health fungiert dabei als Aggregator für die Daten von Fitness-

Mehr

Barrierefreie Webseiten erstellen mit TYPO3

Barrierefreie Webseiten erstellen mit TYPO3 Barrierefreie Webseiten erstellen mit TYPO3 Alternativtexte Für jedes Nicht-Text-Element ist ein äquivalenter Text bereitzustellen. Dies gilt insbesondere für Bilder. In der Liste der HTML 4-Attribute

Mehr

Dokumentation von Ük Modul 302

Dokumentation von Ük Modul 302 Dokumentation von Ük Modul 302 Von Nicolas Kull Seite 1/ Inhaltsverzeichnis Dokumentation von Ük Modul 302... 1 Inhaltsverzeichnis... 2 Abbildungsverzeichnis... 3 Typographie (Layout)... 4 Schrift... 4

Mehr

Ebenenmasken Grundlagen

Ebenenmasken Grundlagen Ebenenmasken Grundlagen Was sind Ebenmasken? Was machen sie? Wofür braucht man sie? Wie funktionieren sie? Ebenmasken sind eines der sinnvollsten Tools in anspruchvollen EBV Programmen (EBV = elektronische

Mehr

Speicher in der Cloud

Speicher in der Cloud Speicher in der Cloud Kostenbremse, Sicherheitsrisiko oder Basis für die unternehmensweite Kollaboration? von Cornelius Höchel-Winter 2013 ComConsult Research GmbH, Aachen 3 SYNCHRONISATION TEUFELSZEUG

Mehr

Was ist Sozial-Raum-Orientierung?

Was ist Sozial-Raum-Orientierung? Was ist Sozial-Raum-Orientierung? Dr. Wolfgang Hinte Universität Duisburg-Essen Institut für Stadt-Entwicklung und Sozial-Raum-Orientierte Arbeit Das ist eine Zusammen-Fassung des Vortrages: Sozialräume

Mehr

DOKUMENTATION VOGELZUCHT 2015 PLUS

DOKUMENTATION VOGELZUCHT 2015 PLUS DOKUMENTATION VOGELZUCHT 2015 PLUS Vogelzucht2015 App für Geräte mit Android Betriebssystemen Läuft nur in Zusammenhang mit einer Vollversion vogelzucht2015 auf einem PC. Zusammenfassung: a. Mit der APP

Mehr

1 Konto für HBCI/FinTS mit Chipkarte einrichten

1 Konto für HBCI/FinTS mit Chipkarte einrichten 1 Konto für HBCI/FinTS mit Chipkarte einrichten Um das Verfahren HBCI/FinTS mit Chipkarte einzusetzen, benötigen Sie einen Chipkartenleser und eine Chipkarte. Die Chipkarte erhalten Sie von Ihrem Kreditinstitut.

Mehr

Anwendungshinweise zur Anwendung der Soziometrie

Anwendungshinweise zur Anwendung der Soziometrie Anwendungshinweise zur Anwendung der Soziometrie Einführung Die Soziometrie ist ein Verfahren, welches sich besonders gut dafür eignet, Beziehungen zwischen Mitgliedern einer Gruppe darzustellen. Das Verfahren

Mehr

Was meinen die Leute eigentlich mit: Grexit?

Was meinen die Leute eigentlich mit: Grexit? Was meinen die Leute eigentlich mit: Grexit? Grexit sind eigentlich 2 Wörter. 1. Griechenland 2. Exit Exit ist ein englisches Wort. Es bedeutet: Ausgang. Aber was haben diese 2 Sachen mit-einander zu tun?

Mehr

Excel Pivot-Tabellen 2010 effektiv

Excel Pivot-Tabellen 2010 effektiv 7.2 Berechnete Felder Falls in der Datenquelle die Zahlen nicht in der Form vorliegen wie Sie diese benötigen, können Sie die gewünschten Ergebnisse mit Formeln berechnen. Dazu erzeugen Sie ein berechnetes

Mehr

Programme im Griff Was bringt Ihnen dieses Kapitel?

Programme im Griff Was bringt Ihnen dieses Kapitel? 3-8272-5838-3 Windows Me 2 Programme im Griff Was bringt Ihnen dieses Kapitel? Wenn Sie unter Windows arbeiten (z.b. einen Brief schreiben, etwas ausdrucken oder ein Fenster öffnen), steckt letztendlich

Mehr

Guide DynDNS und Portforwarding

Guide DynDNS und Portforwarding Guide DynDNS und Portforwarding Allgemein Um Geräte im lokalen Netzwerk von überall aus über das Internet erreichen zu können, kommt man um die Themen Dynamik DNS (kurz DynDNS) und Portweiterleitung(auch

Mehr

C++11 C++14 Kapitel Doppelseite Übungen Musterlösungen Anhang

C++11 C++14 Kapitel Doppelseite Übungen Musterlösungen Anhang Einleitung Dieses Buch wendet sich an jeden Leser, der die Programmiersprache C++ neu lernen oder vertiefen möchte, egal ob Anfänger oder fortgeschrittener C++-Programmierer. C++ ist eine weitgehend plattformunabhängige

Mehr

13 OOP MIT DELPHI. Records und Klassen Ein Vergleich

13 OOP MIT DELPHI. Records und Klassen Ein Vergleich 13 OOP MIT DELPHI Delphi war früher "Object Pascal". Dieser Name impliziert eine Funktionalität, welche in der Welt der Programmierung nicht mehr wegzudenken ist: die objektorientierte Programmierung,

Mehr

Computeria Rorschach Mit Excel Diagramme erstellen

Computeria Rorschach Mit Excel Diagramme erstellen Mit Excel Diagramme erstellen 25.12.2010 Roland Liebing Mit Excel Diagramme erstellen Diagramme können Zahlenwerte veranschaulichen, das heisst, mit Hilfe eines Diagramms können Zahlen besser miteinander

Mehr