GetName(), GetName(), GetGeschlecht() und AelterWerden().
|
|
- Kornelius Günther Heidrich
- vor 8 Jahren
- Abrufe
Transkript
1 11. Vererbung Vererbung ist eine der mächtigsten Funktionalitäten der objektorientierten Programmiersprachen. Man versteht unter Vererbung die Tatsache, dass eine Klasse alle Methoden und Variablen einer anderen Klasse ableitet. Eine Klasse muss also nicht immer wieder neu programmiert werden, vielmehr vererbt eine schon fertige Klasse, die einen Großteil der gewünschten Funktionalität aufweist, die Eigenschaften einfach an eine neue Klasse. Hinzu kommt noch die Möglichkeit, dass die Methoden und Variablen in der neuen Klasse nach den eigenen Wünschen erweitert oder abgeändert werden können. Als anschauliches Beispiel könnte man sich ein Fenster unter Windows vorstellen. Sie haben bereits eine Klasse für Fenster geschrieben. Jetzt möchten Sie in einer neuen Klasse ein Fenster mit einer Schließen-Schaltfläche haben. Bevor Sie jetzt alles neu programmieren müssen, erstellen Sie einfach eine neue Klasse, die alle Eigenschaften der alten Fensterklasse erbt, und fügen nur den Code für die Schließen-Schaltfläche ein. Das System der Vererbung hat außer der immensen Zeitersparnis bei der Programmierung den Vorteil, dass Sie sich Klassen schaffen können, die Sie bereits getestet haben. Sie schließen damit sehr viele Fehlerquellen aus Vererbung Beim Vererben bekommt eine neue Klasse alle Methoden und Variablen der Klasse, von der sie erbt. Die Klasse, die diese Eigenschaften vererbt, nennt man Basisklasse oder Superklasse. Als Beispiel beginnen wir mit einer sehr einfachen Klasse: Mensch. Ein Mensch ist in dieser Klasse nur durch den Namen, das Geschlecht und das Alter definiert. Als Methoden gibt es GetName(), GetName(), GetGeschlecht() und AelterWerden(). public class Mensch { private char Geschlecht; // m für männlich, // w für weiblich private string Name; 181
2 private int Alter; public Mensch(char Geschlecht,string Name,int Alter) { this.geschlecht=geschlecht; this.name=name; this.alter=alter; public void SetName(string Name) { this.name=name; public string GetName() { return Name; public void AelterWerden() { Alter++; public string GetAlter() { return Name; public char GetGeschlecht() { return Geschlecht; Von dieser Klasse leiten wir nun die Klasse Angestellter aus Kapitel 10 ab: public class Angestellter : Mensch { private string Abteilung; public double Gehalt; public Angestellter (char g, string n, int a) : base(g,n,a) { public void SetAbteilung(string a) { Abteilung=a; public string GetAbteilung() { return Abteilung; public void SetGehalt(double g) { if (g<0) Gehalt=g; else Gehalt=g; public double GetGethalt() { return Gehalt; 182
3 public void ErhoeheGehalt(double g) { Gehalt+=g; public void AusgabeMitarbeiterInfo() { if(getgeschlecht()=='m')console.write("herr "); if(getgeschlecht()=='w')console.write("frau "); Console.WriteLine(GetName()); Console.WriteLine("Gehalt "+Gehalt); Console.WriteLine("Abteilung: "+Abteilung); Interessant dabei sind nur zwei Teile: und public class Angestellter : Mensch { public Angestellter (char g, string n, int a) : base(g,n,a) { Um dem Compiler mitzuteilen, dass er die Klasse Angestellter von der Klasse Mensch ableiten soll, verwenden wir den :-Operator. Jetzt gibt es in der Klasse Angestellter alle Methoden und alle Variablen der Klasse Mensch. Natürlich gelten die Sicherheitsbestimmungen der Klassenmodifizierer. In der Klasse Angestellter kann z. B. nicht direkt auf die Variablen Name und Geschlecht zugegriffen werden. Der zweite wichtige Teil betrifft den Konstruktor. Wenn wir eine Instanz der Klasse Angestellter erstellen, muss natürlich auch der Konstruktor der Klasse Mensch aufgerufen werden. Dazu erbt auch der neue Konstruktor vom Konstruktor der Basisklasse. In unserem Fall geben wir alle an den Konstruktor von Angestellter übergebenen Parameter an den Konstruktor von Mensch weiter. Der Konstruktor der Basisklasse heißt in diesem Fall immer base(). Base() entspricht dem Konstruktor super() von Java. Die Klasse Angestellter kann natürlich auch wieder an eine Klasse vererbt werden. Im Grunde ist nicht einmal die Klasse Mensch die oberste Klasse. Die Klasse Mensch stammt wie alle anderen Klassen auch von der Klasse System.Object ab dies ist die Mutter aller Klassen. Durch diese Vererbung und Weitervererbung entsteht eine Klassenhierarchie, genauso wie die Klassenbibliothek von C# eine Klassenhierarchie ist. 183
4 Außerdem ist die Vererbung bei Klassen transitiv, d.h., erbt Klasse B von Klasse A und Klasse C von Klasse B, so erbt auch Klasse C von Klasse A. public class Chef : Angestellter { public Chef (char g, string n, int a) : base(g,n,a) { public void VerdoppleGehalt() { Gehalt*=2; Die Klasse Chef leitet sich jetzt von der Klasse Angestellter ab und besitzt nur mehr eine Methode. Um das Ganze als Beispiel zu verwenden, braucht man zu den drei Klassen noch eine Klasse für das Programm selbst. class Kap11_01 { Angestellter a = new Angestellter('m',"Christoph",29); Chef Chefe = new Chef('m',"Bruno",45); Chefe.SetGehalt(20000); Chefe.VerdoppleGehalt(); a.setgehalt(10000); Console.WriteLine(a.GetName()); a.ausgabemitarbeiterinfo(); Console.WriteLine(); Chefe.AusgabeMitarbeiterInfo(); Ausgabe: Christoph Herr Christoph Gehalt Abteilung: Herr Bruno Gehalt Abteilung: Für die Klasse Chef haben wir uns jetzt eine Menge Arbeit erspart, da wir alle Methoden und Variablen, die wir verwenden, nur einmal in die Klassen Mensch und Angestellter geschrieben haben. 184
5 Es ist im Übrigen egal, wie die Klassen im Quelltext positioniert sind. Eine Klasse kann von einer Klasse erben, die im Sourcecode über ihr oder auch unter ihr steht oder auch gar nicht, sondern nur in einer externen Datei oder in der Klassenbibliothek Bei der Verwendung von Vererbung werden auch Zugriffsmodifizierer für Klassen erforderlich. Eine entsprechende Übersicht finden Sie nachfolgend. Modifizierer innerhalb der Klasse innerhalb der abgeleiteten Klasse außerhalb der Klasse public ja ja ja ja internal ja ja ja nein protected ja ja nein nein private ja nein nein nein außerhalb der Assembly 11.2 Überschreiben von Methoden Bei der Programmierung kann es vorkommen, dass Sie eine Methode in einer abgeleiteten Klasse verwenden, die es genau so in der Basisklasse schon gibt. Findet der Compiler in der abgeleiteten Klasse die gleiche Methode wie in der Basisklasse, wird er eine Warnmeldung produzieren. Warnmeldungen können zwar ignoriert werden es wird trotzdem eine EXE-Datei erzeugt, aber man sollte im Hinterkopf behalten, dass Warnmeldungen normalerweise einen Sinn haben. Die Technik des Überschreibens von Methoden nennt man Polymorphismus. using System; public class Kap11_02 { BasisKlasse a; AbgeleiteteKlasse b = new AbgeleiteteKlasse(); a=b; a.macheirgendwas(); b.macheirgendwas(); public class BasisKlasse { public void MacheIrgendwas() { Console.WriteLine("Das ist die Basisklasse"); 185
6 public class AbgeleiteteKlasse : BasisKlasse { public void MacheIrgendwas() { Console.WriteLine("Das ist die abgeleitete Klasse"); In diesem Programm gibt es sowohl in der Basisklasse als auch in der abgeleiteten Klasse eine Methode namens MacheIrgendwas(). Also produziert der Compiler eine Warnmeldung. kap11_2.cs(21,14): warning CS0108: Das Schlüsselwort new bei AbgeleiteteKlasse.MacheIrgendwas() ist erforderlich, da es das vererbte Element BasisKlasse.MacheIrgendwas() ausblendet. kap11_2.cs(15,14): (Position des Symbols im Verhältnis zur vorherigen Warnung) New Dies ist auch gut so, denn es könnte ja sein, dass Sie die Methode nur aus Versehen überschrieben haben. Wollen Sie die Methode in der abgeleiteten Klasse explizit überschreiben, müssen Sie das Schlüsselwort new vor die Methode setzen. public class AbgeleiteteKlasse : BasisKlasse { new public void MacheIrgendwas() { Console.WriteLine("Das ist die abgeleitete Klasse"); Die Ausgabe des Programms lautet dann: Das ist die Basisklasse Das ist die abgeleitete Klasse Virtual und Override Es gibt allerdings noch eine weitere Möglichkeit, eine Methode zu überschreiben. Dazu wird in der Methodendeklaration in der Basisklasse das Schlüsselwort virtual und in der überschreibenden Methode das Schlüsselwort override benutzt. 186
7 Man muss allerdings darauf achten, dass durch das Überschreiben einer Methode durch virtual und override nicht nur die Methode der abgeleiteten Klasse ersetzt wird, sondern auch die ursprüngliche Methode der Basisklasse. So wird beispielsweise nach einer expliziten Typkonvertierung eines Objekts der abgeleiteten Klasse in ein Objekt der Basisklasse immer noch die neue Methode aufgerufen. using System; public class Kap11_03 { BasisKlasse a; AbgeleiteteKlasse b = new AbgeleiteteKlasse(); a=b; a.macheirgendwas(); b.macheirgendwas(); public class BasisKlasse { public virtual void MacheIrgendwas() { Console.WriteLine("Das ist die Basisklasse"); public class AbgeleiteteKlasse : BasisKlasse { public override void MacheIrgendwas() { Console.WriteLine("Das ist die abgeleitete Klasse"); Ausgabe: Das ist die abgeleitete Klasse Das ist die abgeleitete Klasse Sie sehen also, durch die Verwendung von virtual und override verändern Sie auch die Basisklasse Abstrakte Klassen Abstrake Klassen und Methoden können nicht direkt instanziert werden. Sie dienen dazu, ein Gerüst für eine Klasse darzustellen, die erst noch komplett geschrieben werden muss. Um eine abstrakte Klasse zu verwenden, ist es also nö- 187
8 tig, eine neue Klasse zu deklarieren, die von dieser Klasse erbt. Alle abstrakten Methoden der abstrakten Klasse müssen in der neuen Klasse vorhanden sein. public abstract class BasisRechteck { protected int Laenge; protected int Breite; public BasisRechteck(int l, int b) { Laenge=l; Breite=b; public BasisRechteck(int a) { Laenge=a; Breite=a; public abstract void Zeichnen(); public int GetFlaeche() { return l*b; public int GetUmfang() { return 2*(l+b); Diese abstrakte Klasse, bei der nicht alle Methoden implementiert sind, stellt unsere Basisklasse dar. Wenn wir versuchen, sie zu instanzieren, erhalten wir eine Fehlermeldung: public class Kap11_4 { BasisRechteck r = new BasisRechteck(10,20); kap11_4.cs(5,21): error CS0144: Eine Instanz der abstrakten Klasse oder Schnittstelle BasisRechteck konnte nicht erstellt werden. Um diese Klasse zu benutzen, müssen wir erst eine neue Klasse erschaffen, die von der Klasse BasisRechteck erbt. Diese Klasse muss auch noch die Methode Zeichnen() implementieren, da diese in BasisKlasse nur als Gerüst existiert. using System; public class Kap11_04 { 188
9 Rechteck r = new Rechteck(10,20); Console.WriteLine(r.GetFlaeche()); r.zeichnen(); public class Rechteck : BasisRechteck { public Rechteck (int l, int b) : base(l,b) { public override void Zeichnen() { int i,j; for(i=0;i<laenge;i++) { for(j=0;j<breite;j++) { Console.Write("*"); Console.WriteLine(); Als Implementierung für die Methode Zeichnen verwenden wir das Rechteckzeichnen aus Kapitel 11. Die Klasse Rechteck, die von BasisRechteck abgeleitet ist, lässt sich jetzt problemlos instanzieren. Sinn solcher abstrakten Methoden ist es, den Programmierer, der die Klasse verwendet, an die Implementierung mancher Methoden zu erinnern. In unserem Beispiel stand beim Programmieren der Klasse BasisRechteck noch nicht fest, wie das Rechteck gezeichnet werden sollte. Mit der Klasse Rechteck haben wir eine Implementierung für eine Konsolenanwendung vorgenommen. Hätten wir das Ganze als Windows-Programm, könnten wir immer noch die Klasse BasisRechteck verwenden. Nur müsste jetzt die Methode Zeichnen anders aufgebaut sein eben für eine Windows-Anwendung. Die Implementierung einer abstrakten Methode kann auch mit einer leeren Methode erfolgen, wenn Sie die Methode gar nicht verwenden wollen aber sie muss trotzdem immer implementiert werden. public class Rechteck : BasisRechteck { public Rechteck (int l, int b) : base(l,b) { public override void Zeichnen() { 189
10 11.4 Versiegelte Klassen Unter versiegelten Klassen versteht man Klassen, von denen man keine weitere Klasse ableiten kann. Der Einsatz einer solchen Klasse, die dem Prinzip der Objektorientierung etwas widerspricht, ist z. B. sinnvoll, wenn kommerzielle Klassen vor einer Veränderung geschützt werden sollen. Eine andere Einsatzmöglichkeit ergibt sich z. B. für eine Debug-Klasse, bei der die versehentliche Weiterverwendung vermieden werden soll. Eine Debug-Klasse dient als Hilfsklasse bei der Programmerstellung und beim Fehlersuchen. Using System; public class Kap11_05 { BasisRechteck r = new BasisRechteck(10,20); r.zeichnen(); public sealed class BasisRechteck { private int Laenge; private int Breite; public BasisRechteck(int l, int b) { Laenge=l; Breite=b; public BasisRechteck(int a) { Laenge=a; Breite=a; public int GetFlaeche() { return Laenge*Breite; public int GetUmfang() { return 2*(Laenge+Breite); public void Zeichnen() { int i,j; for(i=0;i<laenge;i++) { for(j=0;j<breite;j++) { Console.Write("*"); Console.WriteLine(); 190
11 Wenn Sie jetzt versuchen würden, von der Klasse BasisRechteck die Klasse Rechteck abzuleiten public class Rechteck : BasisRechteck { public Rechteck (int l, int b) : base(l,b) { bekämen Sie die Fehlermeldung kap11_5.cs(11,14): error CS0509: Rechteck : von der versiegelten Klasse BasisRechteck kann nicht geerbt werden kap11_5.cs(18,21): (Position des Symbols im Verhältnis zum vorherigen Fehler) Wenn Sie in einer sealed-klasse Variablen vom Typ protected deklarieren, bekommen Sie natürlich eine Warnmeldung, da diese Variablen dazu gedacht sind, in einer abgeleiteten Klasse weiterverwendet zu werden. Der Compiler geht in diesem Fall davon aus, dass Sie eines der Schlüsselwörter sealed oder protected irrtümlich verwendet haben. Natürlich können Sie nicht abstract und sealed gleichzeitig für eine Klasse verwenden. Das wäre so, als hätten Sie eine Sackgasse, in die nur eine Einbahnstraße führt Interfaces In C# ist es nur möglich, von einer Klasse zu erben. Mehrfachvererbung wie bei C++ gibt es nicht mehr. Die einzige Möglichkeit, doch so etwas wie Mehrfachvererbung zu erreichen, ist der Einsatz von Interfaces (Schnittstellen). Interfaces gleichen abstrakten Klassen, die nur aus abstrakten Methoden bestehen. Allerdings werden Sie nicht mit dem Schlüsselwort class, sondern mit interface eingeleitet. Außerdem sollten Interfaces immer mit einem großen I beginnen. Diesmal ein sehr vereinfachtes Beispiel: using System; public interface ITest { void MacheIrgendwas(); 191
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
MehrProgrammieren 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
MehrVerhindert, dass eine Methode überschrieben wird. public final int holekontostand() {...} public final class Girokonto extends Konto {...
PIWIN I Kap. 8 Objektorientierte Programmierung - Vererbung 31 Schlüsselwort: final Verhindert, dass eine Methode überschrieben wird public final int holekontostand() {... Erben von einer Klasse verbieten:
MehrObjektorientierte 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
MehrObjektorientierte 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/
MehrVererbung & Schnittstellen in C#
Vererbung & Schnittstellen in C# Inhaltsübersicht - Vorüberlegung - Vererbung - Schnittstellenklassen - Zusammenfassung 1 Vorüberlegung Wozu benötigt man Vererbung überhaubt? 1.Um Zeit zu sparen! Verwendung
MehrFolge 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,
Mehr5. Abstrakte Klassen. Beispiel (3) Abstrakte Klasse. Beispiel (2) Angenommen, wir wollen die folgende Klassenhierarchie implementieren:
5. Abstrakte Klassen Beispiel 5. Abstrakte Klassen 5. Abstrakte Klassen Beispiel Beispiel (3) Angenommen, wir wollen die folgende Klassenhierarchie implementieren: Probleme des Implementierungsvorschlags:
MehrLineargleichungssysteme: Additions-/ Subtraktionsverfahren
Lineargleichungssysteme: Additions-/ Subtraktionsverfahren W. Kippels 22. Februar 2014 Inhaltsverzeichnis 1 Einleitung 2 2 Lineargleichungssysteme zweiten Grades 2 3 Lineargleichungssysteme höheren als
MehrJava: Vererbung. Teil 3: super() www.informatikzentrale.de
Java: Vererbung Teil 3: super() Konstruktor und Vererbung Kindklasse ruft SELBSTSTÄNDIG und IMMER zuerst den Konstruktor der Elternklasse auf! Konstruktor und Vererbung Kindklasse ruft SELBSTSTÄNDIG und
MehrObjektorientierte Programmierung OOP
Objektorientierte Programmierung OOP Objektorientierte Programmierung OOP Ronja Düffel WS2012/13 08. Oktober 2013 Objektorientierte Programmierung OOP Objektorientierte Programmierung Objektorientierte
Mehr5. Abstrakte Klassen
5. Abstrakte Klassen Beispiel 5. Abstrakte Klassen Angenommen, wir wollen die folgende Klassenhierarchie implementieren: Vogel Amsel Drossel Fink Peter Becker, Programiersprache Java FH Bonn-Rhein-Sieg,
MehrEinführung in die Programmierung
Technische Universität München WS 2003/2004 Institut für Informatik Prof. Dr. Christoph Zenger Testklausur Einführung in die Programmierung Probeklausur Java (Lösungsvorschlag) 1 Die Klasse ArrayList In
MehrBinä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
MehrEinführung in die Java- Programmierung
Einführung in die Java- Programmierung Dr. Volker Riediger Tassilo Horn riediger horn@uni-koblenz.de WiSe 2012/13 1 Wichtig... Mittags keine Pommes... Praktikum A 230 C 207 (Madeleine + Esma) F 112 F 113
MehrDatensicherung. 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
MehrOrdner 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.
Mehr3 Objektorientierte Konzepte in Java
3 Objektorientierte Konzepte in Java 3.1 Klassendeklarationen Fragen an die Klassendeklaration: Wie heißt die Klasse? Wer darf auf die Klasse und ihre Attribute/Methoden zugreifen? Ist die Klasse eine
MehrFolge 19 - Bäume. 19.1 Binärbäume - Allgemeines. Grundlagen: Ulrich Helmich: Informatik 2 mit BlueJ - Ein Kurs für die Stufe 12
Grundlagen: Folge 19 - Bäume 19.1 Binärbäume - Allgemeines Unter Bäumen versteht man in der Informatik Datenstrukturen, bei denen jedes Element mindestens zwei Nachfolger hat. Bereits in der Folge 17 haben
MehrVorkurs 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:
MehrWie halte ich Ordnung auf meiner Festplatte?
Wie halte ich Ordnung auf meiner Festplatte? Was hältst du von folgender Ordnung? Du hast zu Hause einen Schrank. Alles was dir im Wege ist, Zeitungen, Briefe, schmutzige Wäsche, Essensreste, Küchenabfälle,
MehrWas 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?
Mehr13 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,
MehrInformatik 2 Labor 2 Programmieren in MATLAB Georg Richter
Informatik 2 Labor 2 Programmieren in MATLAB Georg Richter Aufgabe 3: Konto Um Geldbeträge korrekt zu verwalten, sind zwecks Vermeidung von Rundungsfehlern entweder alle Beträge in Cents umzuwandeln und
MehrDrei-Schichten-Architektur. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 16: 3-Schichten-Architektur 1 Fachkonzept - GUI
Universität Osnabrück Drei-Schichten-Architektur 3 - Objektorientierte Programmierung in Java Vorlesung 6: 3-Schichten-Architektur Fachkonzept - GUI SS 2005 Prof. Dr. F.M. Thiesing, FH Dortmund Ein großer
MehrFachdidaktik 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,
MehrObjektorientierte 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
MehrM. Graefenhan 2000-12-07. Übungen zu C. Blatt 3. Musterlösung
M. Graefenhan 2000-12-07 Aufgabe Lösungsweg Übungen zu C Blatt 3 Musterlösung Schreiben Sie ein Programm, das die Häufigkeit von Zeichen in einem eingelesenen String feststellt. Benutzen Sie dazu ein zweidimensionales
MehrFachbericht zum Thema: Anforderungen an ein Datenbanksystem
Fachbericht zum Thema: Anforderungen an ein Datenbanksystem von André Franken 1 Inhaltsverzeichnis 1 Inhaltsverzeichnis 1 2 Einführung 2 2.1 Gründe für den Einsatz von DB-Systemen 2 2.2 Definition: Datenbank
MehrC# im Vergleich zu Java
C# im Vergleich zu Java Serhad Ilgün Seminar Universität Dortmund SS 03 Gliederung Entstehung von C# und Java Überblick von C# und Java Unterschiede und Gemeinsamkeiten Zusammenfassung und Ausblick Entstehung
MehrC++ Grundlagen. ++ bedeutet Erweiterung zum Ansi C Standard. Hier wird eine Funktion eingeleitet
C++ Grundlagen ++ bedeutet Erweiterung zum Ansi C Standard Hier wird eine Funktion eingeleitet Aufbau: In dieser Datei stehen die Befehle, die gestartet werden, wenn das Programm gestartet wird Int main()
MehrSEP 114. Design by Contract
Design by Contract SEP 114 Design by Contract Teile das zu entwickelnde Programm in kleine Einheiten (Klassen, Methoden), die unabhängig voneinander entwickelt und überprüft werden können. Einheiten mit
MehrMediator 9 - Lernprogramm
Mediator 9 - Lernprogramm Ein Lernprogramm mit Mediator erstellen Mediator 9 bietet viele Möglichkeiten, CBT-Module (Computer Based Training = Computerunterstütztes Lernen) zu erstellen, z. B. Drag & Drop
MehrBilder 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
MehrDas sogenannte Beamen ist auch in EEP möglich ohne das Zusatzprogramm Beamer. Zwar etwas umständlicher aber es funktioniert
Beamen in EEP Das sogenannte Beamen ist auch in EEP möglich ohne das Zusatzprogramm Beamer. Zwar etwas umständlicher aber es funktioniert Zuerst musst du dir 2 Programme besorgen und zwar: Albert, das
MehrObjektorientierte Programmierung
Objektorientierte Programmierung Ein Computerprogramm besteht aus Funktionen (Programmabschnitten, die etwas tun) und Variablen (Speicherplätzen für Informationen). Werden Funktionen aktiviert, verändern
MehrGimp Kurzanleitung. Offizielle Gimp Seite: http://www.gimp.org/
Gimp Kurzanleitung Offizielle Gimp Seite: http://www.gimp.org/ Inhalt Seite 2 Seite 3-4 Seite 5-6 Seite 7 8 Seite 9 10 Seite 11-12 Ein Bild mit Gimp öffnen. Ein Bild mit Gimp verkleinern. Ein bearbeitetes
MehrDownloadfehler in DEHSt-VPSMail. Workaround zum Umgang mit einem Downloadfehler
Downloadfehler in DEHSt-VPSMail Workaround zum Umgang mit einem Downloadfehler Downloadfehler bremen online services GmbH & Co. KG Seite 2 Inhaltsverzeichnis Vorwort...3 1 Fehlermeldung...4 2 Fehlerbeseitigung...5
MehrSoftware Engineering Klassendiagramme Assoziationen
Software Engineering Klassendiagramme Assoziationen Prof. Adrian A. Müller, PMP, PSM 1, CSM Fachbereich Informatik und Mikrosystemtechnik 1 Lesen von Multiplizitäten (1) Multiplizitäten werden folgendermaßen
MehrPrimzahlen 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
MehrUrlaubsregel 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
MehrKlassenbeziehungen & Vererbung
Klassenbeziehungen & Vererbung VL Objektorientierte Programmierung Raimund Kirner teilweise nach Folien von Franz Puntigam, TU Wien Überblick Arten von Klassenbeziehungen Untertypen versus Vererbung in
MehrKapitel 6. Vererbung
Kapitel 6 Vererbung Vererbung 1 Ziele Das Vererbungsprinzip der objektorientierten Programmierung verstehen Und in Java umsetzen können Insbesondere folgende Begriffe verstehen und anwenden können: Ober/Unterklassen
MehrGrundkonstrukte der Objektorientierung in Java, C# und C++
Grundkonstrukte der Objektorientierung in Java, C# und C++ 2 Viele Patterns basieren auf einer Kombination einiger zentraler Modellierungskonstrukte, namentlich auf Schnittstellen- und Implementierungsvererbung
MehrEinführung in Java. PING e.v. Weiterbildung Andreas Rossbacher 24. März 2005
Einführung in Java PING e.v. Weiterbildung Andreas Rossbacher 24. März 2005 Gliederung 1. Was ist Java / Geschichte von Java 2. Prinzip der Plattformunabhängigkeit 3. Wie kommt man vom Quellcode zum Programm
MehrDas große ElterngeldPlus 1x1. Alles über das ElterngeldPlus. Wer kann ElterngeldPlus beantragen? ElterngeldPlus verstehen ein paar einleitende Fakten
Das große x -4 Alles über das Wer kann beantragen? Generell kann jeder beantragen! Eltern (Mütter UND Väter), die schon während ihrer Elternzeit wieder in Teilzeit arbeiten möchten. Eltern, die während
Mehr2.1 Erstellung einer Gutschrift über den vollen Rechnungsbetrag
1. Einführung Manchmal ist es notwendig, dem Kunden eine Gutschrift zu einer bestimmten Rechnung, über einzelne Positionen oder auch völlig frei von einer Basis-Rechnung zu erstellen. Die verschiedenen
Mehr1. Grundlegende Eigenscha5en 2. Redefini+on 3. Polymophie 4. Mehrfachvererbung
K05 Vererbung & Polymorphie in C++ 1. Grundlegende Eigenscha5en 2. Redefini+on 3. Polymophie 4. Mehrfachvererbung 2 Vererbung in C++: Grundlagen Analog zu Java unterstützt C++ das Konzept der Vererbung:
Mehr1 topologisches Sortieren
Wolfgang Hönig / Andreas Ecke WS 09/0 topologisches Sortieren. Überblick. Solange noch Knoten vorhanden: a) Suche Knoten v, zu dem keine Kante führt (Falls nicht vorhanden keine topologische Sortierung
MehrProfessionelle 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
MehrAdminer: 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
MehrAnleitung zur Daten zur Datensicherung und Datenrücksicherung. Datensicherung
Anleitung zur Daten zur Datensicherung und Datenrücksicherung Datensicherung Es gibt drei Möglichkeiten der Datensicherung. Zwei davon sind in Ges eingebaut, die dritte ist eine manuelle Möglichkeit. In
MehrLeichte-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
MehrJava Einführung Abstrakte Klassen und Interfaces
Java Einführung Abstrakte Klassen und Interfaces Interface Interface bieten in Java ist die Möglichkeit, einheitliche Schnittstelle für Klassen zu definieren, die später oder/und durch andere Programmierer
MehrKlausur WS 2006/07 Programmiersprache Java Objektorientierte Programmierung II 15. März 2007
Fachhochschule Bonn-Rhein-Sieg University of Applied Sciences Fachbereich Informatik Prof. Dr. Peter Becker Klausur WS 2006/07 Programmiersprache Java Objektorientierte Programmierung II 15. März 2007
MehrDie Post hat eine Umfrage gemacht
Die Post hat eine Umfrage gemacht Bei der Umfrage ging es um das Thema: Inklusion Die Post hat Menschen mit Behinderung und Menschen ohne Behinderung gefragt: Wie zufrieden sie in dieser Gesellschaft sind.
MehrObjektorientierte Programmierung
Universität der Bundeswehr Fakultät für Informatik Institut 2 Priv.-Doz. Dr. Lothar Schmitz FT 2006 Zusatzaufgaben Lösungsvorschlag Objektorientierte Programmierung Lösung 22 (Java und UML-Klassendiagramm)
MehrKurzanleitung. MEYTON Aufbau einer Internetverbindung. 1 Von 11
Kurzanleitung MEYTON Aufbau einer Internetverbindung 1 Von 11 Inhaltsverzeichnis Installation eines Internetzugangs...3 Ist mein Router bereits im MEYTON Netzwerk?...3 Start des YAST Programms...4 Auswahl
MehrLaufwerke, Ordner, Dateien: 1. Erklärung der Begriffe
1. Erklärung der Begriffe Wenn dein PC hochgelaufen ist, ist der Desktop (Deutsch: Arbeitsfläche) sichtbar. Er sieht genauso aus wie er beim letzten Mal aussah, bevor du den Computer heruntergefahren hast.
MehrKinderarmut. 1. Kapitel: Kinderarmut in der Welt
Kinderarmut 1. Kapitel: Kinderarmut in der Welt Armut gibt es überall auf der Welt und Armut ist doch sehr unterschiedlich. Armut? Was ist das? Woher kommt das? wieso haben die einen viel und die anderen
MehrSICHERN DER FAVORITEN
Seite 1 von 7 SICHERN DER FAVORITEN Eine Anleitung zum Sichern der eigenen Favoriten zur Verfügung gestellt durch: ZID Dezentrale Systeme März 2010 Seite 2 von 7 Für die Datensicherheit ist bekanntlich
Mehr1 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.
MehrAnleitung ü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
MehrJava Kurs für Anfänger Einheit 5 Methoden
Java Kurs für Anfänger Einheit 5 Methoden Ludwig-Maximilians-Universität München (Institut für Informatik: Programmierung und Softwaretechnik von Prof.Wirsing) 22. Juni 2009 Inhaltsverzeichnis Methoden
MehrArbeiten 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
MehrLeitfaden 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...
MehrWindows 7: Neue Funktionen im praktischen Einsatz - Die neue Taskleiste nutzen
Windows 7: Neue Funktionen im praktischen Einsatz - Die neue Taskleiste nutzen Das können wir Ihnen versprechen: An der neuen Taskleiste in Windows 7 werden Sie sehr viel Freude haben. Denn diese sorgt
Mehr1. Weniger Steuern zahlen
1. Weniger Steuern zahlen Wenn man arbeitet, zahlt man Geld an den Staat. Dieses Geld heißt Steuern. Viele Menschen zahlen zu viel Steuern. Sie haben daher wenig Geld für Wohnung, Gewand oder Essen. Wenn
MehrDer 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,
MehrKapitel 6. Vererbung
1 Kapitel 6 2 Ziele Das sprinzip der objektorientierten Programmierung verstehen Und in Java umsetzen können Insbesondere folgende Begriffe verstehen und anwenden können: Ober/Unterklassen Subtyping Überschreiben
MehrAnimationen 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
Mehr4 Vererbung, Polymorphie
4 Vererbung, Polymorphie Jörn Loviscach Versionsstand: 21. März 2014, 22:57 Die nummerierten Felder sind absichtlich leer, zum Ausfüllen beim Ansehen der Videos: http://www.j3l7h.de/videos.html This work
MehrAbschnitt 9: Schnittstellen: Interfaces
Abschnitt 9: Schnittstellen: Interfaces 9. Schnittstellen: Interfaces 9.1 Die Idee der Schnittstellen 9.2 Schnittstellen in Java 9.3 Marker-Interfaces 9.4 Interfaces und Hilfsklassen 9.5 Zusammenfassung
Mehr5.2 Neue Projekte erstellen
5.2 Neue Projekte erstellen Das Bearbeiten von bestehenden Projekten und Objekten ist ja nicht schlecht wie aber können Sie neue Objekte hinzufügen oder gar völlig neue Projekte erstellen? Die Antwort
MehrPrintserver 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)
MehrZählen von Objekten einer bestimmten Klasse
Zählen von Objekten einer bestimmten Klasse Ziel, Inhalt Zur Übung versuchen wir eine Klasse zu schreiben, mit der es möglich ist Objekte einer bestimmten Klasse zu zählen. Wir werden den ++ und den --
MehrWas ist das Budget für Arbeit?
1 Was ist das Budget für Arbeit? Das Budget für Arbeit ist ein Persönliches Geld für Arbeit wenn Sie arbeiten möchten aber nicht mehr in einer Werkstatt. Das gibt es bisher nur in Nieder-Sachsen. Und in
MehrDokumentation für das Spiel Pong
Dokumentation für das Spiel Pong BwInf - Turnierserver Didaktik der nformatik BWINF KI Wettbewerbs-Plattform Stand: 02.09.2014 Grundlagen In diesem KI-Turnier programmiert ihr einen Schläger für das Retro-Spiel
MehrGruppenrichtlinien 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
MehrPartitionieren in Vista und Windows 7/8
Partitionieren in Vista und Windows 7/8 Windows Vista und Windows 7 können von Haus aus Festplatten partitionieren. Doch die Funktion ist etwas schwer zu entdecken, denn sie heißt "Volume verkleinern".
MehrUNIGLAS - Handbuch zum Forum
UNIGLAS - Handbuch zum Forum Stand: November 2014 Das Forum im der UNIGLAS im Intranet der Website soll dem Informationsaustausch dienen und gleichzeitig Plattform sein, um gemeinsam verschiedene Themen
MehrInnere Klassen in Java
Innere Klassen in Java SS 2012 Prof. Dr. Margarita Esponda Innere Klassen Klassen- oder Interfacedefinitionen können zur besseren Strukturierung von Programmen verschachtelt werden Eine "Inner Class" wird
MehrInstallation und Inbetriebnahme von Microsoft Visual C++ 2010 Express
Howto Installation und Inbetriebnahme von Microsoft Visual C++ 2010 Express Peter Bitterlich Markus Langer 12. Oktober 2012 Zusammenfassung Dieses Dokument erklärt Schritt für Schritt die Installation
Mehr1 Vom Problem zum Programm
Hintergrundinformationen zur Vorlesung GRUNDLAGEN DER INFORMATIK I Studiengang Elektrotechnik WS 02/03 AG Betriebssysteme FB3 Kirsten Berkenkötter 1 Vom Problem zum Programm Aufgabenstellung analysieren
MehrDas Typsystem von Scala. L. Piepmeyer: Funktionale Programmierung - Das Typsystem von Scala
Das Typsystem von Scala 1 Eigenschaften Das Typsystem von Scala ist statisch, implizit und sicher 2 Nichts Primitives Alles ist ein Objekt, es gibt keine primitiven Datentypen scala> 42.hashCode() res0:
Mehr2 Die Terminaldienste Prüfungsanforderungen von Microsoft: Lernziele:
2 Die Terminaldienste Prüfungsanforderungen von Microsoft: Configuring Terminal Services o Configure Windows Server 2008 Terminal Services RemoteApp (TS RemoteApp) o Configure Terminal Services Gateway
MehrUniversal Dashboard auf ewon Alarmübersicht auf ewon eigener HTML Seite.
ewon - Technical Note Nr. 003 Version 1.2 Universal Dashboard auf ewon Alarmübersicht auf ewon eigener HTML Seite. Übersicht 1. Thema 2. Benötigte Komponenten 3. Downloaden der Seiten und aufspielen auf
MehrRobot 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
MehrAufklappelemente anlegen
Aufklappelemente anlegen Dieses Dokument beschreibt die grundsätzliche Erstellung der Aufklappelemente in der mittleren und rechten Spalte. Login Melden Sie sich an der jeweiligen Website an, in dem Sie
MehrJava Kurs für Anfänger Einheit 4 Klassen und Objekte
Java Kurs für Anfänger Einheit 4 Klassen und Ludwig-Maximilians-Universität München (Institut für Informatik: Programmierung und Softwaretechnik von Prof.Wirsing) 13. Juni 2009 Inhaltsverzeichnis klasse
Mehr40-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
MehrOutlook. 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
MehrICS-Addin. Benutzerhandbuch. Version: 1.0
ICS-Addin Benutzerhandbuch Version: 1.0 SecureGUARD GmbH, 2011 Inhalt: 1. Was ist ICS?... 3 2. ICS-Addin im Dashboard... 3 3. ICS einrichten... 4 4. ICS deaktivieren... 5 5. Adapter-Details am Server speichern...
MehrPhotoFiltre: Fotos email-tauglich verkleinern
PhotoFiltre: Fotos email-tauglich verkleinern Bleiben wir bei dem Beispiel, daß Sie im Urlaub sind, ein paar schöne Fotos gemacht haben und diese nun vom Internet-Café aus an Ihre Lieben zuhause senden
MehrCSS-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
MehrWas 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
MehrSich einen eigenen Blog anzulegen, ist gar nicht so schwer. Es gibt verschiedene Anbieter. www.blogger.com ist einer davon.
www.blogger.com Sich einen eigenen Blog anzulegen, ist gar nicht so schwer. Es gibt verschiedene Anbieter. www.blogger.com ist einer davon. Sie müssen sich dort nur ein Konto anlegen. Dafür gehen Sie auf
Mehr13. Tutorium zu Programmieren
13. Tutorium zu Programmieren Dennis Ewert Gruppe 6 Universität Karlsruhe Institut für Programmstrukturen und Datenorganisation (IPD) Lehrstuhl Programmierparadigmen WS 2008/2009 c 2009 by IPD Snelting
MehrWichtige Information zur Verwendung von CS-TING Version 9 für Microsoft Word 2000 (und höher)
Wichtige Information zur Verwendung von CS-TING Version 9 für Microsoft Word 2000 (und höher) CS-TING Version 9 Das Programm CS-TING Version 9 für Microsoft Word 2000 (und höher) verwendet Makros bei der
MehrEs sollte die MS-DOS Eingabeaufforderung starten. Geben Sie nun den Befehl javac ein.
Schritt 1: Installation des Javacompilers JDK. Der erste Start mit Eclipse Bevor Sie den Java-Compiler installieren sollten Sie sich vergewissern, ob er eventuell schon installiert ist. Gehen sie wie folgt
Mehr