Klasseninstanzen mit Konstruktoren erstellen

Größe: px
Ab Seite anzeigen:

Download "Klasseninstanzen mit Konstruktoren erstellen"

Transkript

1 Klasseninstanzen mit Konstruktoren erstellen In diesem Kapitel lernen Sie wie Sie einen Klassenkonstruktor erstellen. wie Sie mehrere Konstruktoren für eine Klasse erstellen. wie Sie eine Klasseninstanz mit einem Konstruktor initialisieren. wie Sie die ToString-Methode für eine Klasse implementieren. wie Sie ein Array mit Klasseninstanzen instantiieren. wie Sie ein Array mit Klasseninstanzen als Datenquelle eines List- Box-Steuerelements verwenden. Im vorherigen Kapitel haben Sie die Klasse Book mit den Eigenschaften Text und Title erstellt. Das Generieren einer neuen Instanz dieser Klasse erforderte drei Code-Zeilen. Die erste Zeile deklarierte und instantiierte die Klasse und die zweite und dritte Zeile setzten die Eigenschaften Text und Title. In diesem Kapitel werden Sie einen Klassenkonstruktor erstellen, mit dessen Hilfe Sie alle drei Schritte Deklarieren, Instantiieren und Initialisieren der Felder gleichzeitig durchführen können. Konstruktoren Ein Konstruktor ist ein Code-Block, der ausgeführt wird, wenn Sie das Schlüsselwort new verwenden (New oder new), um eine Klasseninstanz zu erzeugen. Konstruktoren weisen die folgenden Leistungsmerkmale auf: Ein Konstruktor kann Parameter entgegennehmen, mit denen Sie die Felder initialisieren können, wenn das Objekt erstellt wird. Ein Konstruktor kann die Gültigkeit der an ihn übergebenen Parameter überprüfen, wenn die Klasse erstellt wird. Eine Klasse kann mehrere Konstruktoren besitzen, die jeweils unterschiedliche Parameter entgegennehmen. Ein Konstruktor kann einen anderen Konstruktor aufrufen, um einen Teil der Arbeit dieses Konstruktors zu übernehmen. 55

2 Die Visual Basic-Syntax zum Definieren von Konstruktoren unterscheidet sich ein wenig von der Syntax, die Visual C# verwendet. In Visual Basic wird ein Konstruktor ohne Parameter wie folgt deklariert: Public Sub New() End Sub In Visual C# wird derselbe Konstruktor mit dem Klassennamen deklariert: public Book() { In beiden Fällen wird der Konstruktor mit dem Schlüsselwort public (Public oder public) deklariert. Sie benötigen einen öffentlichen (engl. public) Konstruktor, um mit dem Schlüsselwort new eine Klasseninstanz erstellen zu können. Sie können einen Konstruktor ebenfalls mit dem Schlüsselwort private (Private oder private) deklarieren. Wenn Sie lediglich einen Konstruktor in Ihrer Klasse definieren und dieser privat ist, kann der Client-Code keine Klasseninstanzen generieren. Wenn Sie in Ihrer Klasse keine Konstruktoren definieren, erzeugt der Compiler die öffentlichen, leeren Konstruktoren ohne Parameter, die in den vorherigen Code-Fragmenten aufgeführt sind. Sie sollten deshalb sicherstellen, dass die Felder der Klasse dort, wo die Deklaration der Konstruktoren erfolgt, korrekt initialisiert werden. Bücher lesen: Eine alternative Implementierung Sie haben im vorherigen Kapitel die Eigenschaften Text und Title gesetzt, nachdem die Klasse initialisiert wurde. In diesem Kapitel werden Sie zwei unterschiedliche Konstruktoren für die Initialisierung der Klassenfelder erstellen. Der erste Konstruktor ist ein Standardkonstruktor, der eine Instanz wie im ersten Kapitel erzeugt. Der zweite Konstruktor initialisiert die Eigenschaften Title und Text. Sie werden außerdem keine Library-Klasse erstellen, sondern die Bücher stattdessen in einem einfachen Array speichern. Dieses Array bildet die Datenquelle für ein ListBox-Steuerelement. Konstruktoren in der Book-Klasse erstellen Diese Übung baut auf der Übung des ersten Kapitels auf. Sie erstellen ein neues Projekt, in das Sie das Formular und die Book-Klasse übernehmen, die Sie im ersten Kapitel generiert haben. Im Anschluss daran modifizieren Sie die Book-Klasse, indem Sie ihr zwei Konstruktoren und eine ToString-Methode hinzufügen. 56

3 Das Projekt erstellen Um das soeben beschriebene Projekt zu erstellen, gehen Sie wie folgt vor: Erstellen Sie ein neues Windows-Anwendungsprojekt, das Sie ReadMore- Books nennen. Bewegen Sie den Mauszeiger im Projektmappen-Explorer auf Form1 und klicken Sie mit der rechten Maustaste. Wählen Sie im anschließend angezeigten Kontextmenü den Eintrag Löschen aus. Klicken Sie auf die Schaltfläche OK, um den Löschvorgang zu bestätigen. Bewegen Sie den Mauszeiger im Projektmappen-Explorer auf ReadMore- Books und klicken Sie mit der rechten Maustaste. Wählen Sie im anschließend angezeigten Kontextmenü den Eintrag Hinzufügen und dann Vorhandenes Element hinzufügen aus. Navigieren Sie im anschließend angezeigten Dialogfeld Vorhandenes Element hinzufügen zur Datei Form1.vb oder Form1.cs, die Sie im ersten Kapitel erstellt haben. Markieren Sie die Datei mit einem Mausklick und klicken Sie auf Öffnen. Dem ReadMoreBooks-Projekt wird daraufhin eine neue Kopie von Form1 hinzugefügt. Bewegen Sie den Mauszeiger im Projektmappen-Explorer auf ReadMore- Books und klicken Sie mit der rechten Maustaste. Wählen Sie im anschließend angezeigten Kontextmenü den Eintrag Hinzufügen und dann Vorhandenes Element hinzufügen aus. Navigieren Sie im anschließend angezeigten Dialogfeld Vorhandenes Element hinzufügen zur Datei Book.vb oder Book.cs, die Sie im ersten Kapitel erstellt haben. Markieren Sie die Datei mit einem Mausklick und klicken Sie auf Öffnen. Dem ReadMoreBooks-Projekt wird daraufhin eine neue Kopie der Klasse Book hinzugefügt. Das Text-Feld in eine Eigenschaft konvertieren Wenn Sie einen Konstruktor erstellen, können Sie entscheiden, ob das Text-Feld und das Title-Feld Ihrer Book-Klasse leer sein sollen. Um den Gültigkeitsbereich des Textes zu erweitern, konvertieren Sie diesen in eine Eigenschaft. (Sie werden in den verbleibenden Kapiteln dieses Buches nicht mehr viele öffentliche Felder sehen.) Führen Sie im Projektmappen-Explorer, abhängig von der Sprache die Sie verwenden, einen Doppelklick auf Book.vb oder Book.cs aus, um die entsprechende Datei im Code-Editor anzeigen zu lassen. Modifizieren Sie das Text-Feld, so dass dieses künftig ein privates Feld ist. Denken Sie daran, dass private Felder üblicherweise mit dem Präfix m_ beginnen. Private m_text As String = "" 57 private string m_text = "";

4 Fügen Sie der Klasse eine Definition für die Eigenschaft Text hinzu. Public Property Text() As String Get Return m_text End Get Set(ByVal Value As String) m_text = Value End Set End Property public string Text { get { return m_text; set { m_text = value; C#-Code formatieren C# verwendet das Semikolon, um Anweisungen zu trennen. Mithilfe des Semikolons können Sie Ihren Code besser formatieren, als dies in Visual Basic möglich ist. Der vorherige C#-Code zeigt ein kompakteres Format für die Definition einer Eigenschaft. Opfern Sie die Lesbarkeit jedoch niemals der Kompaktheit. Einen Konstruktor ohne Parameter hinzufügen Wenn Sie mit Visual C# arbeiten, sollten Sie den Namespace für Book.cs und Form1.cs in ReadMoreBooks umbenennen, so dass sich all Ihre Klassendeklarationen in demselben Projekt-Namespace befinden. Außerdem vereinfachen Sie auf diese Weise das Deklarieren von Klassenvariablen. Ändern Sie die Namespace-Deklaration zu Beginn der Datei, so dass diese wie folgt aufgebaut ist: // Nur Visual C# // Nehmen Sie die folgende Änderung in Book.cs und in Form1.cs vor namespace ReadMoreBooks Wenn Sie mit Visual Basic arbeiten, wählen Sie im Listenfeld Klassenname den Eintrag Book (ReadMoreBooks) aus, sofern dies nicht bereits geschehen ist. Wenn Sie mit Visual C# arbeiten, wählen Sie im gleichen Listenfeld ReadMoreBooks.Book aus. Wählen Sie im Dropdown-Listenfeld Methodenname den Eintrag New aus, wenn Sie mit Visual Basic arbeiten. In Visual C# wählen Sie im gleichen Listenfeld den Eintrag Book aus. Der Klasse Book wird daraufhin der folgende Code hinzugefügt: 58

5 Public Sub New() End Sub public Book() { // // TODO: Fügen Sie hier die Konstruktorlogik hinzu // Ihre nächste Aufgabe besteht darin, einen Konstruktor mit Parametern zu erstellen. Sie können innerhalb einer Klasse mehrere Konstruktoren erzeugen, wenn diese anhand ihrer Parameterlisten unterschieden werden können. Einen Konstruktor mit Parametern erstellen Wenn Sie Konstruktoren mit Parametern erstellen, sollten Sie daran denken, dass der Code in einem Konstruktor nach der Initialisierung der Felder ausgeführt wird. Sie können deshalb jede Feldinitialisierung überschreiben. Fügen Sie unter den Felddeklarationen den folgenden Code ein, um einen Konstruktor zu deklarieren, der die beiden Parameter Title und Text erhalten soll. Modifizieren Sie jedoch nicht den bereits bestehenden Konstruktor, der im vorherigen Abschnitt erstellt wurde. Sie generieren stattdessen einen zweiten Konstruktor. Public Sub New(ByVal title As String, ByVal text As String) End Sub public Book(string title, string text) { Fügen Sie Ihrem neuen Konstruktor den folgenden Code hinzu, um zu überprüfen, ob ein Titel und ein Text übergeben wurden. Wenn eine leere Zeichenfolge als Titel oder Text übergeben wurde, soll ein Ausnahmefehler ausgelöst werden. Ein Ausnahmefehler unterbricht die Ausführung des Programms und verhindert, dass die Klasse instantiiert wird. If (title <> "") And (text <> "") And _ (Not IsNothing(title)) And (Not IsNothing(text)) Then m_title = title m_text = text Else Throw New Exception("Title or text is an empty string.") End If 59

6 if ((title!="")&&(text!="")&&(title!=null)&&(text!=null)){ m_title = title; m_text = text; else { throw new System.Exception("Title or text is an empty string."); Würden Sie den Konstruktor löschen, dem keine Parameter übergeben werden und den Sie im Abschnitt Einen Konstruktor ohne Parameter hinzufügen erstellt haben, müsste der Client-Code den neuen Konstruktor benutzen. Dies bedeutete, dass keine Instanzen generiert werden könnten, bis der Text und der Titel bekannt wären. Eine ToString-Methode hinzufügen Im ersten Kapitel verwendeten Sie das Title-Feld als Zeichenfolge, die im Listenfeld des ReadBooks-Projekt angezeigt wurde. Da Sie in diesem Kapitel ein Array benutzen, um die Instanzen von Book zu speichern, können Sie den Umstand nutzen, dass Sie ein Array als Datenquelle für ein Listenfeld verwenden können. Wenn Sie eine ToString-Methode für die Klasse der Objekte definieren, die Sie anzeigen lassen möchten, benutzt das Listenfeld diese Methode, um jedes im Array enthaltene Objekt darzustellen. Fügen Sie der Klasse Book die folgende Methode hinzu: 60 Public Overrides Function ToString() As String Return m_title End Function public override string ToString() { return m_title; Im.NET Framework ist es fast unmöglich, mit Klassen konfrontiert zu werden, die nicht von der Klasse System.Object abgeleitet sind. Das override-schlüsselwort (Overrides in Visual Basic und override in Visual C#), das in der Methodendeklaration benutzt wird, zeigt an, dass die ToString- Methode der Book-Klasse anstelle der ToString-Methode verwendet werden soll, die in der Klasse System.Object definiert ist. Die in System.Object definierte Methode würde einfach den Namen der Klasse (ReadMoreBooks.Book) ausgeben. Die Änderungen an der Klasse Book sind nun abgeschlossen.

7 Datenvalidierungsfehler in einem Konstruktor behandeln Ihnen stehen verschiedene Möglichkeiten zur Verfügung, um auf Situationen zu reagieren, in denen entweder der title- oder der text-parameter eine leere Zeichenfolge ist: Sie können einen Ausnahmefehler auslösen. Dieser Ansatz wurde in dem Beispiel dieses Kapitels verwendet. In diesem Fall wird keine neue Instanz der Book-Klasse erstellt. Die Programmausführung wird in der Code-Zeile unterbrochen, die das Schlüsselwort new enthalt. Sie können dann einen try-block (Try oder try) verwenden, um auf die Fehlerursache zu reagieren oder die Verarbeitung fortzusetzen. Sie können das Feld durch eine leere Zeichenfolge ersetzen. Würden Sie jedoch einen Konstruktor bereitstellen, um nicht leere Zeichenfolgen in den Feldern text und title zu erzwingen, würden Sie diese Taktik nicht einsetzen. Würden Sie stattdessen einen Konstruktor zur Verfügung stellen, um die Eigenschaften während der Initialisierung zu setzen, wäre das Ersetzen des Feldes durch eine leere Zeichenfolge eine angemessene Lösung. Wenn Sie sich dazu entschließen, das Feld durch eine leere Zeichenfolge zu ersetzen, sollten Sie die Entwickler darauf hinweisen, dass jeder Instanz von Book eine leere Zeichenfolge für title und text übergeben werden kann. Die Konstruktoren benutzen Sie werden nun die bisherigen Code-Zeilen durch nur einen Aufruf des Konstruktors ersetzen. Sie werden außerdem die Library-Klasse durch ein Array ersetzen und die Datenbindungseigenschaften des.net Frameworks nutzen, indem Sie das Array als Datenquelle verwenden. Den zu ersetzenden Code löschen Bewegen Sie den Mauszeiger im Projektmappen-Explorer auf Form1, klicken Sie mit der rechten Maustaste und wählen Sie im anschließend angezeigten Kontextmenü den Eintrag Code anzeigen aus, um den Code des Formulars im Code-Editor zu öffnen. Entfernen Sie die Methode showpage_click. Entfernen Sie in der Klasse Form1 die Deklaration des Feldes Library. Sie werden dieses Feld durch ein Array mit Book-Instanzen ersetzen. ' Löschen Sie diese Zeile des Visual Basic-Projekts: Private m_library As Library // Löschen Sie diese Zeile im Visual C#-Projekt: private Livrary m_library; Entfernen Sie den Code im Form1_Load-Ereignis. 61

8 Entfernen Sie den Code aus der Methode listofbooks_selectedindexchanged, so dass Sie nur noch über die Schnittstelle verfügen. Sie werden nun den Code schreiben, der notwendig ist, um die im ersten Kapitel beschriebene Funktionalität zu erhalten. Mit dem Konstruktor eine Instanz von Book erstellen Sie müssen der Methode Form1_Load Code hinzufügen, so dass das Formular ein Array mit Book-Instanzen erstellen und dieses Array an ein ListBox-Steuerelement binden kann. Erzeugen Sie eine Instanz der Märchenbuchklasse. Verwenden Sie dazu den Konstruktor, der zwei Parameter entgegennimmt. Fügen Sie der Form1_Load-Methode den folgenden Code hinzu: Dim fairytales As Book = _ New Book("Fairy Tales", "Once upon a time there was a bear.") Book fairytales = new Book("Fairy Tales", "Once upon a time there was a bear."); Wenn Sie abhängig von der verwendeten Sprache new oder New eingeben, zeigt IntelliSense an, dass Sie zwei Konstruktoren definiert haben. Dies ist in der folgenden Abbildung dargestellt. Wenn Sie über mehr als einen Konstruktor verfügen, werden die Konstruktoren als überladen bezeichnet. Erstellen Sie für das Kochbuch eine Instanz der Book-Klasse. Verwenden Sie dazu den Konstruktor, der zwei Parameter besitzt: Dim cookies As Book = New Book("Cookies", _ "Chocolate chip cookies are the most delicious cookies.") Book cookies = new Book("Cookies", "Chocolate chip cookies are the most delicious cookies."); 62

9 Ein Array mit Book-Instanzen generieren Fügen Sie unter den Book-Deklarationen den folgenden Code ein, um ein Array zu erzeugen: Dim m_library() As Book = New Book() {fairytales, cookies Book [] m_library = new Book [] {fairytales,cookies; Fügen Sie unter den Array-Deklarationen den folgenden Code ein, um das jeweilige Array als Datenquelle für das ListBox-Steuerelement zu benutzen: listofbooks.datasource = m_library listofbooks.datasource = m_library; Der Code der vollständigen Methode ist nachfolgend aufgeführt: Private Sub Form1_Load(ByVal sender As Object, _ ByVal e As System.EventArgs) Handles MyBase.Load Dim fairytales As Book = _ New Book("Fairy Tales", "Once upon a time there was a bear.") Dim cookies As Book = New Book("Cookies", _ "Chocolate chip cookies are the most delicious cookies.") Dim m_library() As Book = New Book() {fairytales, cookies listofbooks.datasource = m_library End Sub private void Form1_Load(object sender, System.EventArgs e) { Book fairytales = new Book("Fairy Tales", "Once upon a time there was a bear."); Book cookies =new Book("Cookies", "Chocolate chip cookies are the most delicious cookies."); Book [] m_library =new Book [] {fairytales,cookies; listofbooks.datasource = m_library; Auf die Auswahl im ListBox-Steuerelement reagieren Wenn Sie die Applikation starten, zeigt das ListBox-Steuerelement die Titel aller Bücher an. Da die Datenquelle des ListBox-Steuerelements ein Array mit Book-Instanzen ist, repräsentiert jedes Element in der Liste eine Instanz der Klasse Book. Fügen Sie nun Code hinzu, um eine Instanz abzurufen und die ausgewählte Seite anzeigen zu lassen. 63

10 Fügen Sie der SelectedIndexChanged-Ereignisbehandlungsroutine des mit listofbooks bezeichneten ListBox-Steuerelements, den folgenden Code hinzu: Dim thebook As Book = CType(listOfBooks.SelectedItem, Book) Book thebook =(Book)(listOfBooks.SelectedItem); Wie Sie im ersten Kapitel gesehen haben, werden die Objekte im ListBox- Steuerelement wie Instanzen von System.Object behandelt. Die Methode CType ändert die Instanz nicht. Sie verändert lediglich die Art und Weise, in der sich die Instanz zur Laufzeit präsentiert. Die C#-Syntax unterscheidet sich ein wenig von der Visual Basic-Syntax, führt aber zu demselben Ergebnis. Die Book-Instanz wird nun nicht mehr wie eine Instanz von System.Object, sondern wie eine Instanz von Book behandelt. Fügen Sie unter der CType-Anweisung den folgenden Code ein, um eine Seite des Textes anzeigen zu lassen: titlelabel.text = thebook.title thebook.pagelength = Decimal.ToInt32(pageLength.Value) page.text = thebook.getpage(decimal.toint32(pagetodisplay.value)) titlelabel.text =thebook.title; thebook.pagelength =Decimal.ToInt32(pageLength.Value); page.text =thebook.getpage(decimal.toint32(pagetodisplay.value)); Da pagelength.value eine Zeichenfolgeneigenschaft des pagelength- Steuerelements ist, können Sie ihren Wert nicht direkt der Integer-Eigenschaft thebook.pagelength zuweisen. Die Methode Decimal.ToInt32 konvertiert die Zeichenfolge pagelength.value in einen Integer-Wert. Starten und testen Sie das Programm. Es wird dasselbe Verhalten wie die Applikation des ersten Kapitels aufweisen. Diese beiden Übungen haben einige der Optionen demonstriert, die Ihnen zur Verfügung stehen, wenn Sie Objekte und Applikationen entwickeln. Im ersten Kapitel haben Sie die Klassen Book und Library generiert, um die gestellte Aufgabe zu lösen. In diesem Kapitel haben Sie lediglich eine Book-Klasse erzeugt und die Möglichkeiten der.net Windows-Steuerelemente genutzt, um das Verhalten von Library zu implementieren. Dieses Verhalten wird durch den gemeinsamen Einsatz des ListBox-Steuerelements und des Arrays erzielt. 64

11 Arrays deklarieren und initialisieren Ihnen stehen mehrere Möglichkeiten zur Verfügung, um ein Array mit Klasseninstanzen zu deklarieren und zu initialisieren. Die Syntax (für Visual Basic), die Sie im vorherigen Abschnitt verwendet haben, ist nachfolgend noch einmal aufgeführt: Dim m_library() As Book = New Book() {fairytales, cookies Sie können dasselbe Array auch wie folgt deklarieren: Dim books() As Book = _ {New Book("Title1", "Text1"), New Book{"Title2", "Text2" Oder so: Dim m_library() As Book = {fairytales, cookies Und hier noch eine weitere Möglichkeit: Dim books(2) As Book Books(0) = New Book("Title1", "Text1") Books(1) = New Book("Title2", "Text2") Books(2) = New Book("Title3", "Text3") Referenz- und Werttypen Um die letzten drei Code-Auszüge verstehen zu können, sollten Sie die Konzepte für Referenztypen und Werttypen in Visual Basic und Visual C# verstehen. Jede Variable, die Sie in den Kapiteln dieses Buches deklarieren, ist entweder ein Referenztyp oder ein Werttyp. Visual Basic, C# und Typen In Visual Basic sind alle Variablen entweder Referenztypen oder Werttypen. C# verwendet einen dritten Typ, der als Zeigertyp bezeichnet wird. Sie können eine Zeigertyp-Variable, ähnlich wie einen C++- Zeiger, nur innerhalb eines unsafe-code-blocks verwenden. Die nicht sichere Kodierung wird jedoch nicht in diesem Buch behandelt. Eine Referenztyp-Variable wird immer dann generiert, wenn Sie eine Variable wie folgt deklarieren: als Klasse (zum Beispiel Book) als Schnittstelle (Schnittstellen werden im neunten Kapitel erörtert) als Array (zum Beispiel Dim numbers() as Integer) als Zeichenfolge als Objekt (zum Beispiel Dim x As Object) als Delegat (Delegate werden im siebten Kapitel beschrieben) 65

12 Eine Werttyp-Variable wird immer dann generiert, wenn Sie eine Variable wie folgt deklarieren: als ganzzahligen Typ (zum Beispiel Integer oder int) als Fließkommazahl (zum Beispiel Double oder double) als Booleanschen Typ (zum Beispiel Boolean oder bool) als Enumeration (zum Beispiel System) als Struktur (zum Beispiel DateTime) Wenn Sie eine Variable als Werttyp oder als Referenztyp deklarieren, wird der Variablen ein Bereich im Speicher zugeordnet. Dieser Bereich enthält für Werttypen den Wert der Variablen. Wird ein Referenztyp deklariert, enthält der reservierte Speicherbereich die Position einer Instanz der entsprechenden Klasse im Speicher. Referenzdeklarationen reservieren deshalb nur den Speicher, der notwendig ist, um auf eine Instanz der Klasse (in unserem Beispiel ist dies die Klasse Book) zu verweisen. Dim abook as Book; Book abook; Wenn Sie mithilfe des Operators new (New in Visual Basic und new in C#) die Instanz einer Klasse erstellen, wird automatisch Speicher für die in der Klasse deklarierten Felder reserviert. Die folgenden Anweisungen führen dazu, dass Speicher für die Felder Text, PageLength und Title reserviert wird, die in der Klasse Book definiert sind. Der new-operator gibt die Adresse der Felder im Speicher zurück. New Book("theTitle", "thetext") new Book("theTitle", "thetext") Im Anschluss daran generieren die nachfolgend aufgeführten Anweisungen die Instanz der Book-Klasse und setzen die Variable abook auf die Position der neuen Instanz. abook = New Book("theTitle", "thetext") abook = new Book("theTitle", "thetext") Doch wie lautet der Wert von abook, wenn die zuerst aufgeführte Anweisungsgruppe ausgeführt wird, bevor er mit diesen letzten beiden Anweisungen gesetzt wird? Bevor ein Referenztyp initialisiert wird, ist sein Wert in Visual Basic gleich Nothing und in C# gleich null. Der nachfolgend aufgeführte Code-Auszug gibt True zurück: Dim abook as Book MessageBox.Show((aBook Is Nothing).ToString()) 66

13 Book abook; MessageBox.Show((aBook == null).tostring()); Visual Basic bietet das Schlüsselwort Is zum Testen des Wertes eines Referenztyps an. C# verwendet den Gleichheitsoperator ==. Visual Basic stellt außerdem die Methode IsNothing zur Verfügung, um den Wert einer Referenz zu testen. Diese Methode gibt den Booleanschen Wert True zurück, wenn die Referenz gleich Nothing ist. Die folgenden Zeilen erfüllen dieselbe Funktion wie der zuvor aufgeführte Code: Dim abook As Book MessageBox.Show(IsNothing(aBook).ToString()) Wenn Sie versuchen, die Eigenschaften oder Methoden einer Referenz zu benutzen, während diese auf Nothing gesetzt ist, tritt ein Fehler auf, da keine Instanzdaten vorhanden sind, mit denen gearbeitet werden könnte. Dieser Fehler trägt die Bezeichnung System.NullReferenceException. Wenn Sie Ihre Programme stabiler gestalten möchten, sollten Sie überprüfen, ob Ihre Referenzen auf null oder Nothing gesetzt sind. Sie sollten besonders darauf achten, diese Überprüfung nicht erst dann durchzuführen, wenn Sie die Referenz als Parameter an eine Methode übergeben haben. In diesem Fall hat Ihr Code weniger Kontrolle über den Status der Variablen, als vor dem Aufruf der Methode. Das Konzept der Referenztypen betrifft außerdem das Kopieren, das Überprüfen von Übereinstimmungen und die Speicherbereinigung. Das Kopieren wird im zehnten Kapitel beschrieben, das Überprüfen von Übereinstimmungen im zwölften Kapitel und die Speicherbereinigung im achten Kapitel. Array-Deklarationen verstehen Die ersten drei Beispiele im Abschnitt Arrays deklarieren und initialisieren verwenden Variationen der folgenden Syntax: Dim m_library() As Book = {fairytales, cookies In diesem Beispiel werden die geschweiften Klammern { definiert, um ein Array mit Werten zu generieren. Sie könnten fairytales auch durch New Book("Fairy Tales", "Once upon a time") ersetzen, da der Ausdruck New einen Verweis auf eine Klasseninstanz zurückgibt. Das folgende Beispiel differiert ein wenig von allen anderen Beispielen: Dim books(2) As Book Books(0) = New Book("Title1", "Text1") Books(1) = New Book("Title2", "Text2") Books(2) = New Book("Title3", "Text3") Die erste Anweisung erzeugt keine Instanz der Book-Klasse. Sie generiert lediglich ein Array mit Verweisen auf Book-Instanzen. In der zweiten, dritten und vierten Zeile werden die Instanzen von Book erstellt und den Referenzen zugewiesen. 67

14 Schnellüberblick Sie möchten einen Konstruktor ohne Parameter erstellen.... einen Konstruktor mit Parametern erstellen.... ein Array mit Verweisen auf Instanzen erstellen.... ein Array mit Instanzen erstellen und initialisieren. 68 Gehen Sie wie folgt vor: Wählen Sie im Code-Editor und dort im Dropdown-Listenfeld Klassenname den gewünschten Klassennamen und im Dropdown-Listenfeld Methodenname den Eintrag New (für Visual Basic) oder den Klassennamen (für Visual C#) aus. Oder: Fügen Sie in Visual Basic diesen Code hinzu: Public Sub New() End Sub Fügen Sie in Visual C# diesen Code hinzu: public Book() { Erstellen Sie einen Konstruktor ohne Parameter. Fügen Sie die Parameter so hinzu, wie Sie dies für die Methode einer Klasse tun würden. Fügen Sie in Visual Basic diesen Code hinzu: Dim books() As Book Fügen Sie in Visual C# diesen Code hinzu: Book[] books; Fügen Sie in Visual Basic diesen Code hinzu: Dim books() As Book = _ { New Book(), New Book() Fügen Sie in Visual C# diesen Code hinzu: Book[] books = { new Book(), new Book();

15 Sie möchten... überprüfen, ob eine Referenz auf Nothing oder null gesetzt ist. 69 Gehen Sie wie folgt vor: Fügen Sie in Visual Basic diesen Code hinzu: Dim abook As Book If IsNothing(aBook) Then ' Hier den Code einfügen, der ' ausgeführt werden soll, wenn ' die Referenz auf Nothing ' gesetzt ist. End If. Fügen Sie in Visual C# diesen Code hinzu: Book abook; if (abook == null) { ' Hier den Code einfügen, der ' ausgeführt werden soll, wenn ' die Referenz auf null ' gesetzt ist.

16

Prof. W. Henrich Seite 1

Prof. W. Henrich Seite 1 Klasse - ist ein benutzerdefinierter Datentyp (Referenztyp) - hat Datenelemente - hat Methoden - Konstruktor ist spezielle Methode zum Erstellen eines Objektes vom Typ der Klasse (Instanz) - jede Klasse

Mehr

Microsoft Access 2010 Bilder

Microsoft Access 2010 Bilder Microsoft Access 2010 Bilder Hyperlinks... arbeiten ähnlich wie ein Link in einer Webseite. sind ein Verweis auf eine Datei (access2010\material\beispiel\tabledevelop\automat.accdb). können ein Verweis

Mehr

Erstellen von speziellen Ereignissen in C#

Erstellen von speziellen Ereignissen in C# Erstellen von speziellen Ereignissen in C# Anhand eines Projekts, das demonstriert, wie spezielle Ereignisse ausgelöst werden und wie sie sich auf den verwendeten Code auswirken, zeigen wir Ihnen, wie

Mehr

Makro + VBA 2007 effektiv

Makro + VBA 2007 effektiv Daten Makro + VBA 2007 effektiv 5 DATEN 5.1 Variablen Variablen können beliebige Werte zugewiesen und im Gegensatz zu Konstanten, siehe Seite 84, jederzeit im Programm verändert werden. Als Variablen können

Mehr

Repetitorium Informatik (Java)

Repetitorium Informatik (Java) Repetitorium Informatik (Java) Tag 6 Lehrstuhl für Informatik 2 (Programmiersysteme) Übersicht 1 Klassen und Objekte Objektorientierung Begrifflichkeiten Deklaration von Klassen Instanzmethoden/-variablen

Mehr

JavaScript. Dies ist normales HTML. Hallo Welt! Dies ist JavaScript. Wieder normales HTML.

JavaScript. Dies ist normales HTML. Hallo Welt! Dies ist JavaScript. Wieder normales HTML. JavaScript JavaScript wird direkt in HTML-Dokumente eingebunden. Gib folgende Zeilen mit einem Texteditor (Notepad) ein: (Falls der Editor nicht gefunden wird, öffne im Browser eine Datei mit der Endung

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 34 Einstieg in die Informatik mit Java Klassen mit Instanzmethoden Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 34 1 Definition von Klassen 2 Methoden 3 Methoden

Mehr

Java Einführung Klassendefinitionen

Java Einführung Klassendefinitionen Java Einführung Klassendefinitionen Inhalt dieser Einheit Java-Syntax Klassen definieren Objekte instanziieren Instanzvariable deklarieren Klassenvariable deklarieren 2 Klassen definieren In der Problemanalyse

Mehr

zu große Programme (Bildschirmseite!) zerlegen in (weitgehend) unabhängige Einheiten: Unterprogramme

zu große Programme (Bildschirmseite!) zerlegen in (weitgehend) unabhängige Einheiten: Unterprogramme Bisher Datentypen: einfach Zahlen, Wahrheitswerte, Zeichenketten zusammengesetzt Arrays (Felder) zur Verwaltung mehrerer zusammengehörender Daten desselben Datentypes eindimensional, mehrdimensional, Array-Grenzen

Mehr

Java Einführung Methoden. Kapitel 6

Java Einführung Methoden. Kapitel 6 Java Einführung Methoden Kapitel 6 Inhalt Deklaration und Aufruf von Methoden Lokale und globale Namen (Bezeichner) Sichtbarkeit und Lebensdauer von Variablen in Methoden Überladen von Methoden 2 Methoden

Mehr

3 Objektorientierte Konzepte in Java

3 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

Mehr

Einstieg in die Programmierung mit Visual Basic.NET

Einstieg in die Programmierung mit Visual Basic.NET Einstieg in die Programmierung mit Visual Basic.NET Agenda - Methoden mit Argumenten - Überladen von Methoden - Eigenschaftenprozeduren - Eigenschaftenprozeduren automatisch generieren - Konstruktoren

Mehr

Inhaltsverzeichnis. Teil I Erste Schritte. 1 Einleitung Visual Basic 2010 Express installieren Teil II Grundlagen von Visual Basic

Inhaltsverzeichnis. Teil I Erste Schritte. 1 Einleitung Visual Basic 2010 Express installieren Teil II Grundlagen von Visual Basic Teil I Erste Schritte 1 Einleitung.... 11 1.1 Die Themenschwerpunkte dieses Buches.... 11 Visual Basic 2010 Express.... 11 Visual Basic 2010.... 12.NET Framework.... 13 1.2 Wie Sie am besten mit diesem

Mehr

Kapitel 8. Programmierkurs. Methoden. 8.1 Methoden

Kapitel 8. Programmierkurs. Methoden. 8.1 Methoden Kapitel 8 Programmierkurs Birgit Engels Anna Schulze Zentrum für Angewandte Informatik Köln Objektorientierte Programmierung Methoden Überladen von Methoden Der this-zeiger Konstruktoren Vererbung WS 07/08

Mehr

AuD-Tafelübung T-B5b

AuD-Tafelübung T-B5b 6. Übung Sichtbarkeiten, Rekursion, Javadoc Di, 29.11.2011 1 Blatt 5 2 OOP Klassen Static vs. Instanzen Sichtbarkeit 3 Stack und Heap Stack Heap 4 Blatt 6 1 Blatt 5 2 OOP Klassen Static vs. Instanzen Sichtbarkeit

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

Probeklausur: Programmierung WS04/05

Probeklausur: Programmierung WS04/05 Probeklausur: Programmierung WS04/05 Name: Hinweise zur Bearbeitung Nimm Dir für diese Klausur ausreichend Zeit, und sorge dafür, dass Du nicht gestört wirst. Die Klausur ist für 90 Minuten angesetzt,

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 41 Einstieg in die Informatik mit Java Vererbung Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 41 1 Überblick: Vererbung 2 Grundidee Vererbung 3 Verdeckte Variablen

Mehr

Einführung in die Java- Programmierung

Einfü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

Mehr

Flexibler Einsatz von VBA-Code und Access-Elementen durch Kapselung und modularer Programmierung (Josef Pötzl, www.joposol.com)

Flexibler Einsatz von VBA-Code und Access-Elementen durch Kapselung und modularer Programmierung (Josef Pötzl, www.joposol.com) Flexibler Einsatz von VBA-Code und Access-Elementen durch Kapselung und modularer Programmierung (Josef Pötzl, www.joposol.com) Kapselung Was ist das? Auszug aus Wikipedia Kapselung ist auch ein wichtiges

Mehr

Formulare vererben und Basisklassen erstellen

Formulare vererben und Basisklassen erstellen Formulare vererben und Basisklassen erstellen In diesem Kapitel lernen Sie wie Sie mit der Vererbungsauswahl vorhandene Formulare in Projekte aufnehmen. wie Sie eigene Basisklassen mit selbst definierten

Mehr

Microsoft Visual Studio Community 2015

Microsoft Visual Studio Community 2015 Microsoft Visual Studio Community 2015 Visual Studio Community 2015 ist eine kostenlose IDE mit leistungsfähigen Programmier- und Entwicklungswerkzeugen für Windows, ios und Android. Sie ist für einzelne

Mehr

Javakurs FSS Lehrstuhl Stuckenschmidt. Tag 3 - Objektorientierung

Javakurs FSS Lehrstuhl Stuckenschmidt. Tag 3 - Objektorientierung Javakurs FSS 2012 Lehrstuhl Stuckenschmidt Tag 3 - Objektorientierung Warum Objektorientierung Daten und Funktionen möglichst eng koppeln und nach außen kapseln Komplexität der Software besser modellieren

Mehr

C# im Vergleich zu Java

C# 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

Mehr

Kapitel 9: Klassen und höhere Datentypen. Klassen und höhere. Objekte, Felder, Methoden. Küchlin/Weber: Einführung in die Informatik

Kapitel 9: Klassen und höhere Datentypen. Klassen und höhere. Objekte, Felder, Methoden. Küchlin/Weber: Einführung in die Informatik Klassen und höhere Datentypen Objekte, Felder, Methoden Küchlin/Weber: Einführung in die Informatik Klassen Klasse (class) stellt einen (i.a. benutzerdefinierten) Verbund-Datentyp dar Objekte sind Instanzen

Mehr

Michael Kolberg. einfach klipp & klar. Microsofft* Press

Michael Kolberg. einfach klipp & klar. Microsofft* Press Michael Kolberg einfach klipp & klar Microsofft* Press III Vorwort 11 Die CD-ROM zum Buch 21 Die AutoPlay-Funktion der CD-ROM 22 Installation der Testfragen und des Ebooks 23 Installation des Computer-Lexikons

Mehr

Programmierung mit C Zeiger

Programmierung mit C Zeiger Programmierung mit C Zeiger Zeiger (Pointer)... ist eine Variable, die die Adresse eines Speicherbereichs enthält. Der Speicherbereich kann... kann den Wert einer Variablen enthalten oder... dynamisch

Mehr

Objektorientierte Programmierung. Objektorientierte Programmierung. Klasse. Objekt. Beispiel: Sportfest1. Methode. Eine Einführung mit BlueJ

Objektorientierte Programmierung. Objektorientierte Programmierung. Klasse. Objekt. Beispiel: Sportfest1. Methode. Eine Einführung mit BlueJ Objektorientierte Programmierung Objektorientierte Programmierung Eine Einführung mit BlueJ stellt die Daten, ihre Struktur und ihre Beziehungen zueinander in den Vordergrund. Weniger im Blickpunkt: die

Mehr

Erstellen sicherer ASP.NET- Anwendungen

Erstellen sicherer ASP.NET- Anwendungen Erstellen sicherer ASP.NET- Anwendungen Authentifizierung, Autorisierung und sichere Kommunikation Auf der Orientierungsseite finden Sie einen Ausgangspunkt und eine vollständige Übersicht zum Erstellen

Mehr

Java Vererbung. Inhalt

Java Vererbung. Inhalt Java Vererbung Inhalt 1 Zielsetzung... 2 1.1 Bewertung... 2 2 Grundlagen der Vererbung... 2 2.1 Super und Subklassen... 2 3 Überladen von Methoden... 4 3.1 Unterschiedliche Parameter... 4 3.2 Gleiche Parameter

Mehr

zu große Programme (Bildschirmseite!) zerlegen in (weitgehend) unabhängige Einheiten: Unterprogramme

zu große Programme (Bildschirmseite!) zerlegen in (weitgehend) unabhängige Einheiten: Unterprogramme Bisher Datentypen: einfach Zahlen, Wahrheitswerte, Zeichenketten zusammengesetzt Arrays (Felder) zur Verwaltung mehrerer zusammengehörender Daten desselben Datentypes eindimensional, mehrdimensional, Array-Grenzen

Mehr

Gewusst wie: Erstellen einer C#-Windows-Anwendung

Gewusst wie: Erstellen einer C#-Windows-Anwendung Page 1 of 7 2008 Microsoft Corporation. All rights reserved. Visual C#-Sprachkonzepte Gewusst wie: Erstellen einer C#-Windows-Anwendung In diesem Thema können Sie sich mit den Elementen der Visual C# Express

Mehr

Teil A Einführung in Microsoft Visual C# und Microsoft Visual Studio 2008 23

Teil A Einführung in Microsoft Visual C# und Microsoft Visual Studio 2008 23 Einleitung 13 Einführung 13 An wen sich dieses Buch richtet 13 Wegweiser für Ein- und Umsteiger 14 Konventionen und Features in diesem Buch 15 Konventionen 15 Weitere Features 16 Systemvoraussetzungen

Mehr

3 Klassen, Attribute, Methoden

3 Klassen, Attribute, Methoden 3 Klassen, Attribute, Methoden Jörn Loviscach Versionsstand: 10. April 2011, 10:25 Die nummerierten Felder sind absichtlich leer, zum Ausfüllen in der Vorlesung. Videos dazu: http://www.j3l7h.de/videos.html

Mehr

Klassen und Objekte. Einführung in Java. Folie 1 von Mai Ivo Kronenberg

Klassen und Objekte. Einführung in Java. Folie 1 von Mai Ivo Kronenberg Klassen und Objekte Einführung in Java Folie 1 von 28 12. Mai 2011 Ivo Kronenberg Inhalt Objekte Klassendefinitionen Datenelemente (Klassenattribute) Instanzieren von Objekten Konstruktoren Vergleich primitive

Mehr

Microsoft Visual C# 2008

Microsoft Visual C# 2008 John Sharp 13 Microsoft Visual C# 2008 Schritt für Schritt 13 13 14 15 15 16 16 17 17 17 21 22 22 23 25 26 II 40 51 Press 53 54 54 55 55 56 56 57 58 63 63 64 Inhaltsverzeichnis Einleitung 13 Einführung

Mehr

Grundzüge der Programmierung. Wiederverwendung VERERBUNG

Grundzüge der Programmierung. Wiederverwendung VERERBUNG Grundzüge der Programmierung Wiederverwendung VERERBUNG Inhalt dieser Einheit Syntax: Vererbung in Java Superklassen - Subklassen Konstruktorenaufruf in Subklassen super, abstract und final 2 Code-Reuse

Mehr

Eine Klasse beschreibt Objekte mit gleichen Attributen und Methoden.

Eine Klasse beschreibt Objekte mit gleichen Attributen und Methoden. Grundwissen Informatik Objekt Attribut Methoden Als Objekte bezeichnet man alle Gegenstände, Dinge, Lebewesen, Begriffe oder Strukturen unserer Welt ( Autos, Räume, Bakterien, Lehrer, Schüler, Kunden,

Mehr

Programmiersprache 1 (C++) Prof. Dr. Stefan Enderle NTA Isny

Programmiersprache 1 (C++) Prof. Dr. Stefan Enderle NTA Isny Programmiersprache 1 (C++) Prof. Dr. Stefan Enderle NTA Isny 9. Zeiger Arbeitsspeicher / Adressen Der Arbeitsspeicher des Computers (RAM) besteht aus einem Feld von Speicherzellen, beginnend bei Adresse

Mehr

Java Einführung Methoden in Klassen

Java Einführung Methoden in Klassen Java Einführung Methoden in Klassen Lehrziel der Einheit Methoden Signatur (=Deklaration) einer Methode Zugriff/Sichtbarkeit Rückgabewerte Parameter Aufruf von Methoden (Nachrichten) Information Hiding

Mehr

Inhaltsverzeichnis. jetzt lerne ich

Inhaltsverzeichnis. jetzt lerne ich Inhaltsverzeichnis jetzt lerne ich Vorwort 17 1 Ein wenig Theorie vorab 21 1.1 Was ist ein Programm? 22 1.2 Wie wird ein Programm erstellt? 23 1.3 C#, IL-Code und JIT-Compiler 25 1.3.1 Erstellung und Ausführung

Mehr

Methoden (fortgeschritten) in C# - 1

Methoden (fortgeschritten) in C# - 1 Methoden (fortgeschritten) in C# - 1 Marc Satkowski 20. November 2016 C# Kurs Gliederung 1. Opertatoren Überladung 2. delegate 3. Anonyme Methoden delegate Lamda Ausdruck-Lamdas Anweisung-Lamdas Variablenbereich

Mehr

Word. Verweise. Textmarken, Querverweise, Hyperlinks

Word. Verweise. Textmarken, Querverweise, Hyperlinks Word Verweise Textmarken, Querverweise, Hyperlinks Inhaltsverzeichnis 1 Textmarken... 4 1.1 Hinzufügen einer Textmarke... 4 1.2 Ändern einer Textmarke... 4 1.2.1 Anzeigen von Klammern für Textmarken...

Mehr

Objective-C CheatSheet

Objective-C CheatSheet App-Templates: Erstellt automatisch einen Navigation Controller mit editierbarem UITableView und DetailView, der bei Klick auf einzelne UITableViewCell angezeigt wird. Kreiert einen GLKitViewController

Mehr

Javakurs 2013 Objektorientierung

Javakurs 2013 Objektorientierung Javakurs 2013 Objektorientierung Objektorientierte Programmierung I Armelle Vérité 7 März 2013 Technische Universität Berlin This work is licensed under the Creative Commons Attribution-ShareAlike 3.0

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

Überschreiben von Methoden

Überschreiben von Methoden Vergleich der DoME Realisierungen: Methode ausgeben Version 1 (ohne Vererbung): Anzeigen aller Informationen CD: A Swingin Affair (64 Min)* Frank Sinatra Titelanzahl: 16 Mein Lieblingsalbum von Sinatra

Mehr

Microsoft 2010 Express/Beispiel für Grafische Oberflächen

Microsoft 2010 Express/Beispiel für Grafische Oberflächen I Vorbereitung wie Konsolanwendung Rechner hochfahren - Visual C++ 2010 Express aufrufen Datei/neu/Projekt im Menue wählen II Projekt und Projektmappe anlegen Vorlage CLR markieren Projekttyp Windows Forms-Anwendung

Mehr

Kapitel 6. Vererbung

Kapitel 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

Mehr

Aufbau von Klassen. class punkt {...

Aufbau von Klassen. class punkt {... Einführung in C++ Aufbau von Klassen Eine wird mit dem Schlüsselwort class eingeleitet, und endet mit einem Semikolon. Der Inhalt wird zwischen geschweiften Klammern geschrieben. class punkt {... ; Im

Mehr

II. Grundlagen der Programmierung. 9. Datenstrukturen. Daten zusammenfassen. In Java (Forts.): In Java:

II. Grundlagen der Programmierung. 9. Datenstrukturen. Daten zusammenfassen. In Java (Forts.): In Java: Technische Informatik für Ingenieure (TIfI) WS 2005/2006, Vorlesung 9 II. Grundlagen der Programmierung Ekkart Kindler Funktionen und Prozeduren Datenstrukturen 9. Datenstrukturen Daten zusammenfassen

Mehr

DirectX 9 mit Visual Basic.NET DirectInput Teil 2 und Kamera Teil 2

DirectX 9 mit Visual Basic.NET DirectInput Teil 2 und Kamera Teil 2 DirectX 9 mit Visual Basic.NET DirectInput Teil 2 und Kamera Teil 2 Vorwort Herzlich Willkommen zum 4½ Tutorial^^ Heute geht es um darum wie man die Maus benutzt und wie wir die Kameraklasse erweitern.

Mehr

Alternative Schutzmechanismen für Excel

Alternative Schutzmechanismen für Excel Alternative Schutzmechanismen für Excel Bernd Held, Vaihingen an der Enz Neben dem in Excel standardmäßig angebotene Tabellenschutz können Sie weitere Schutzmechanismen in Excel einsetzen. Dazu bedarf

Mehr

Vererbung & Schnittstellen in C#

Vererbung & 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

Mehr

Javakurs zu Informatik I. Henning Heitkötter

Javakurs zu Informatik I. Henning Heitkötter Javakurs zu Informatik I Arrays vergleichen Implementieren Sie folgende Methode, die prüft, ob die Elemente der beiden Arrays an jeder Position übereinstimmen: public static boolean identisch(int[] a,

Mehr

Inhaltsüberblick. I. Grundbegriffe - Objekte und Klassen. Organisatorisches. I. Grundbegriffe - Objektorientierte Konzepte

Inhaltsüberblick. I. Grundbegriffe - Objekte und Klassen. Organisatorisches. I. Grundbegriffe - Objektorientierte Konzepte Grundkonzepte Objektorientierter Programmierung Nicole Himmerlich FSU Jena mit Java, Oberon-2, Object-Pascal und Python Inhaltsüberblick I. Grundbegriffe 1) Kopplung 2) Datenkaspelung 3) Konstruktor 4)

Mehr

Modul Entscheidungsunterstützung in der Logistik. Einführung in die Programmierung mit C++ Übung 1

Modul Entscheidungsunterstützung in der Logistik. Einführung in die Programmierung mit C++ Übung 1 Fakultät Verkehrswissenschaften Friedrich List, Professur für Verkehrsbetriebslehre und Logistik Modul Entscheidungsunterstützung in der Logistik Einführung in die Programmierung mit C++ Übung 1 SS 2016

Mehr

Inhaltsverzeichnis. Teil I Erste Schritte. 1 Einleitung 11. Teil II Grundlagen von VBA. 2 Die ersten VBA-Prozeduren erstellen 17

Inhaltsverzeichnis. Teil I Erste Schritte. 1 Einleitung 11. Teil II Grundlagen von VBA. 2 Die ersten VBA-Prozeduren erstellen 17 Teil I Erste Schritte 1 Einleitung 11 1.1 Die Themenschwerpunkte dieses Buches 11 Visual Basic for Applications 11 Die Beispieldateien 12 1.2 Wie Sie am besten mit diesem Buch arbeiten 13 Programmierung

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

5.5.8 Öffentliche und private Eigenschaften

5.5.8 Öffentliche und private Eigenschaften 5.5.8 Öffentliche und private Eigenschaften Schnittstellen vs. Implementierungen: Schnittstelle einer Klasse beschreibt, was eine Klasse leistet und wie sie benutzt werden kann, ohne dass ihre Implementierung

Mehr

Probeklausur: Programmierung WS04/05

Probeklausur: Programmierung WS04/05 Probeklausur: Programmierung WS04/05 Name: Hinweise zur Bearbeitung Nimm Dir für diese Klausur ausreichend Zeit, und sorge dafür, dass Du nicht gestört wirst. Die Klausur ist für 90 Minuten angesetzt,

Mehr

4 Vererbung, Polymorphie

4 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

Mehr

Java I Vorlesung 6 Referenz-Datentypen

Java I Vorlesung 6 Referenz-Datentypen Java I Vorlesung 6 Referenz-Datentypen 7.6.2004 Referenzen this, super und null Typkonvertierung von Referenztypen Finale Methoden und Klassen Datentypen in Java In Java gibt es zwei Arten von Datentypen:

Mehr

Java Kurs für Anfänger Einheit 5 Methoden

Java 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

Mehr

3 Objektorientierte Konzepte in Java

3 Objektorientierte Konzepte in Java 3 Objektorientierte Konzepte in Java Bisherige Beobachtungen zu Objekten: werden in Klassen zusammengefasst besitzen Eigenschaften und Verhalten verbergen private Informationen werden geboren, leben und

Mehr

3. Die Programmiersprache Java

3. Die Programmiersprache Java 3. Die Programmiersprache Java 3.1 Arbeiten mit BlueJ 3.2 Objekte und Klassen 3.3 Klassen und Unterklassen 3.4 Daten und Operationen 3.5 Ausdrücke 3.6 Algorithmische Kernsprache 3.7 Sprachbeschreibung

Mehr

Deklarationen in C. Prof. Dr. Margarita Esponda

Deklarationen in C. Prof. Dr. Margarita Esponda Deklarationen in C 1 Deklarationen Deklarationen spielen eine zentrale Rolle in der C-Programmiersprache. Deklarationen Variablen Funktionen Die Deklarationen von Variablen und Funktionen haben viele Gemeinsamkeiten.

Mehr

Javakurs für Anfänger

Javakurs für Anfänger Javakurs für Anfänger Einheit 09: Vererbung Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda 1. Teil Einführung in die Vererbung Motivation Das Schlüsselwort extends Einführendes

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

Handbuch Homepage. Kontakt: Buchhandlung LDE Tel. : 07851/

Handbuch Homepage. Kontakt: Buchhandlung LDE Tel. : 07851/ Handbuch Homepage Kontakt: Buchhandlung LDE Tel. : 07851/48599-0 service@lde-online.net Sehr geehrte Nutzerinnen und Nutzer unserer Homepage, Dieses Handbuch für die Homepage der Buchhandlung LDE soll

Mehr

7. Serienbriefe erstellen Das Prinzip des Seriendrucks MICROSOFT WORD Elemente des Seriendrucks

7. Serienbriefe erstellen Das Prinzip des Seriendrucks MICROSOFT WORD Elemente des Seriendrucks 7. Serienbriefe erstellen 7.1. Das Prinzip des Seriendrucks Elemente des Seriendrucks Zur Erstellung eines Serienbriefs sind zwei Elemente notwendig: Hauptdokument mit gleichbleibendem Text und den sog.

Mehr

Kennen, können, beherrschen lernen was gebraucht wird

Kennen, können, beherrschen lernen was gebraucht wird Mit Tastenkombinationen im Text bewegen So gelangen Sie zum Textanfang / Textende Absatzweise nach oben / unten Bildschirmseite nach oben / unten zum Anfang der vorherigen / nächsten Seite S p S Y / S

Mehr

Fachgebiet Informationssysteme Prof. Dr.-Ing. N. Fuhr. Programmierung Prof. Dr.-Ing. Nobert Fuhr. Übungsblatt Nr. 10

Fachgebiet Informationssysteme Prof. Dr.-Ing. N. Fuhr. Programmierung Prof. Dr.-Ing. Nobert Fuhr. Übungsblatt Nr. 10 Gudrun Fischer Sascha Kriewel programmierung@is.informatik.uni-duisburg.de Übungsblatt Nr. 10 Aufgabe 20: Code Verständnis Löse diese Aufgabe selbständig als Vorbereitung zur Übung auf dem Papier. a) Gib

Mehr

Erstellen eines Office-COM-Add-In mit Visual Basic 2005 Express Edition

Erstellen eines Office-COM-Add-In mit Visual Basic 2005 Express Edition Erstellen eines Office-COM-Add-In mit Visual Basic 2005 Express Edition Neues Projekt (Klassenbibliothek) erzeugen Als Projektbezeichnung wählte ich BeispielComAddIn. Add-In-Starter-Klasse erstellen Die

Mehr

Übersicht. Informatik 2 Teil 3 Anwendungsbeispiel für objektorientierte Programmierung

Übersicht. Informatik 2 Teil 3 Anwendungsbeispiel für objektorientierte Programmierung Übersicht 3.1 Modell Konto 3.2 Modell Konto - Erläuterungen 3.3 Benutzer Ein- und Ausgabe mit Dialogfenster I 3.4 Benutzer Ein- und Ausgabe mit Dialogfenster II 3.5 Klassen- und Objekteigenschaften des

Mehr

Android will doch nur spielen. Java Übung

Android will doch nur spielen. Java Übung Android will doch nur spielen Java Übung Vorbereitung: Erstellen Sie mit Eclipse zunächst ein neues Java Projekt JavaUebungen. Lassen Sie die restlichen Einstellungen unverändert. Erzeugen Sie das Projekt

Mehr

Bedienung von BlueJ. Klassenanzeige

Bedienung von BlueJ. Klassenanzeige Im Folgenden werden wichtige Funktionen für den Einsatz von BlueJ im Unterricht beschrieben. Hierbei wird auf den Umgang mit Projekten, Klassen und Objekten eingegangen. Abgeschlossen wird dieses Dokument

Mehr

1: Access starten und beenden

1: Access starten und beenden Schnelleinstieg in Access 1 In diesem Kapitel können Sie sich einen ersten Überblick über die Grundfunktionen von Access verschaffen. Sie erstellen eine Access- Datenbank mit einer einfachen Adressverwaltung.

Mehr

Erstellen sicherer ASP.NET- Anwendungen

Erstellen sicherer ASP.NET- Anwendungen Erstellen sicherer ASP.NET- Anwendungen Authentifizierung, Autorisierung und sichere Kommunikation Auf der Orientierungsseite finden Sie einen Ausgangspunkt und eine vollständige Übersicht zum Erstellen

Mehr

3. Auflage. O Reillys Taschenbibliothek. C# 5.0 kurz & gut. Joseph Albahari & Ben Albahari O REILLY. Aktualisierung von Lars Schulten

3. Auflage. O Reillys Taschenbibliothek. C# 5.0 kurz & gut. Joseph Albahari & Ben Albahari O REILLY. Aktualisierung von Lars Schulten O Reillys Taschenbibliothek 3. Auflage C# 5.0 kurz & gut O REILLY Joseph Albahari & Ben Albahari Aktualisierung von Lars Schulten Inhalt C# 5.0 kurz & gut... 1 Ein erstes C#-Programm... 2 Syntax... 5 Typgrundlagen...

Mehr

Programmieren I + II Regeln der Code-Formatierung

Programmieren I + II Regeln der Code-Formatierung Technische Universität Braunschweig Dr. Werner Struckmann Institut für Programmierung und Reaktive Systeme WS 2016/2017, SS 2017 Programmieren I + II Regeln der Code-Formatierung In diesem Dokument finden

Mehr

Visual Basic.NET. Grundlagen und Profiwissen. von Walter Doberenz, Thomas Kowalski. 1. Auflage

Visual Basic.NET. Grundlagen und Profiwissen. von Walter Doberenz, Thomas Kowalski. 1. Auflage Visual Basic.NET Grundlagen und Profiwissen von Walter Doberenz, Thomas Kowalski 1. Auflage Visual Basic.NET Doberenz / Kowalski schnell und portofrei erhältlich bei beck-shop.de DIE FACHBUCHHANDLUNG Hanser

Mehr

Anwendungsentwicklung mit Java. Grundlagen der OOP, Vererbung, Schnittstellen, Polymorphie

Anwendungsentwicklung mit Java. Grundlagen der OOP, Vererbung, Schnittstellen, Polymorphie Anwendungsentwicklung mit Java Grundlagen der OOP, Vererbung, Schnittstellen, Polymorphie Vererbung (1) 2 Problem: Objekte mit gleichen Attributen/Methoden, aber nicht völlig identisch, z.b., LKW, PKW,

Mehr

Erstellen sicherer ASP.NET- Anwendungen

Erstellen sicherer ASP.NET- Anwendungen Erstellen sicherer ASP.NET- Anwendungen Authentifizierung, Autorisierung und sichere Kommunikation Auf der Orientierungsseite finden Sie einen Ausgangspunkt und eine vollständige Übersicht zum Erstellen

Mehr

Einführung in den Einsatz von Objekt-Orientierung mit C++ I

Einführung in den Einsatz von Objekt-Orientierung mit C++ I Einführung in den Einsatz von Objekt-Orientierung mit C++ I ADV-Seminar Leiter: Mag. Michael Hahsler Syntax von C++ Grundlagen Übersetzung Formale Syntaxüberprüfung Ausgabe/Eingabe Funktion main() Variablen

Mehr

C#Objektorientierte. Aleksandra Maj. Programmiersprachen. Programmiersprachen am Beispiel C# Referat im Rahmen des Seminars. 15.

C#Objektorientierte. Aleksandra Maj. Programmiersprachen. Programmiersprachen am Beispiel C# Referat im Rahmen des Seminars. 15. C#Objektorientierte Programmiersprachen am Beispiel C# Referat im Rahmen des Seminars Programmiersprachen 15.Juli 2004 Aleksandra Maj 1 1.Einleitung Kurze Geschichte und Ziele der neuen Programmiersprache

Mehr

Inhaltsverzeichnis. Einleitung... 13

Inhaltsverzeichnis. Einleitung... 13 Inhaltsverzeichnis Einleitung...................................................... 13 Einführung 13 Wegweiser für Ein- und Umsteiger..................................... 13 Konventionen und Features in

Mehr

esms - sms senden & empfangen mit Outlook

esms - sms senden & empfangen mit Outlook esms - sms senden & empfangen mit Outlook Einrichten der SMS Terminerinnerung für Microsoft Outlook 2007/10 Inhalt Einleitung... 1 1 SMS Terminerinnerung einrichten... 2 1.1 Beim Service esms anmelden...

Mehr

Modul 122 VBA Scribt.docx

Modul 122 VBA Scribt.docx Modul 122 VBA-Scribt 1/5 1 Entwicklungsumgebung - ALT + F11 VBA-Entwicklungsumgebung öffnen 2 Prozeduren (Sub-Prozeduren) Eine Prozedur besteht aus folgenden Bestandteilen: [Private Public] Sub subname([byval

Mehr

Exceptions. Prof. Dr. Margarita Esponda SS 2012. M. Esponda-Argüero

Exceptions. Prof. Dr. Margarita Esponda SS 2012. M. Esponda-Argüero Exceptions Prof. Dr. Margarita Esponda SS 2012 1 Ausnahmen Eine Ausnahme (Exception) ist ein Fehler oder ein nicht geplantes Ereignis, das während der Ausführung eines Programms vorkommt und dessen normalen

Mehr

GetName(), GetName(), GetGeschlecht() und AelterWerden().

GetName(), GetName(), GetGeschlecht() und AelterWerden(). 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

Mehr

Squeak verwenden. Neues Projekt starten. Werkzeuge. Einführung in die objektorientierte Programmierung

Squeak verwenden. Neues Projekt starten. Werkzeuge. Einführung in die objektorientierte Programmierung Einführung in die objektorientierte Programmierung mit Squeak Teil 2 Squeak verwenden Image unter neuem Namen speichern und verwenden - immer ein intaktes Image zur Sicherheit verfügbar alle Änderungen

Mehr

Java Einführung Abstrakte Klassen und Interfaces

Java 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

Mehr

Schnellbausteine. Word Aufbau ZID/Dagmar Serb V.01/Jun2011

Schnellbausteine. Word Aufbau ZID/Dagmar Serb V.01/Jun2011 Schnellbausteine Word 2010 - Aufbau ZID/Dagmar Serb V.01/Jun2011 SCHNELLBAUSTEINE... 1 ORGANIZER FÜR SCHNELLBAUSTEINE... 1 SCHNELLBAUSTEINE ERSTELLEN... 2 Übung: Schnellbaustein erstellen... 2 SCHNELLBAUSTEINE

Mehr

orgexterndoc31 Inhaltsverzeichnis Einleitung... 1 Installation... 3 Grundinstallation... 3 Installation pro Arbeitsplatz... 6 Lizenzierung... 7 Benutzung Einzeldokument... 9 1. Möglichkeit:... 9 2. Möglichkeit...

Mehr

C programmieren. Jürgen Wolf

C programmieren. Jürgen Wolf C programmieren Jürgen Wolf Vorwort 11 Kapitel 1: Schnelleinstieg 13 Was sollten Sie bereits können? 14 Was lernen Sie mit diesem Buch? 14 Was benötigen Sie noch? 14 Überblick zu den einzelnen Kapiteln

Mehr

VIII: Vererbung. Unterklassen einer Klasse. Vererbung von Methoden und Instanzvariablen. Überschreiben von Methoden

VIII: Vererbung. Unterklassen einer Klasse. Vererbung von Methoden und Instanzvariablen. Überschreiben von Methoden VIII: Vererbung Unterklassen einer Klasse Vererbung von Methoden und Instanzvariablen Überschreiben von Methoden Vererbung als Realisierung einer is-a Beziehung. Informatik I VIII: Vererbung 259 Beispiel:

Mehr

Programmieren I. Strategie zum Entwurf von Klassen. Beispiele. Design von Klassen. Dr. Klaus Höppner. Beispiel: Bibliothek

Programmieren I. Strategie zum Entwurf von Klassen. Beispiele. Design von Klassen. Dr. Klaus Höppner. Beispiel: Bibliothek Programmieren I Dr. Klaus Höppner Hochschule Darmstadt Wintersemester 2008/2009 1 / 22 2 / 22 Strategie zum Entwurf von Klassen Beispiele Objektorientierte Sichtweise: Mit welchen Objekten habe ich es

Mehr

3 Maps richtig ablegen und

3 Maps richtig ablegen und PROJEKT MindManager 2002 Intensiv 3 Maps richtig ablegen und speichern Ihre Map ist nun fertig gestellt wenn Sie jetzt Ihre Arbeit mit MindManager beenden, ohne die aktuellen Eingaben und Formatierungen

Mehr

Welche Informatik-Kenntnisse bringen Sie mit?

Welche Informatik-Kenntnisse bringen Sie mit? Welche Informatik-Kenntnisse bringen Sie mit? So gehen Sie vor! Lösen Sie die Aufgaben der Reihe nach von 1 bis 20, ohne das Lösungsblatt zur Hilfe zu nehmen. Der Schwierigkeitsgrad der Aufgaben nimmt

Mehr