MSDN Webcast: VB.NET für Einsteiger und Umsteiger, Teil 4 Klassen und Strukturen (Level 100) Presenter: Daniel Walzenbach Technologieberater Microsoft Deutschland GmbH daniel.walzenbach@microsoft.com http://blogs.msdn.com/walzenbach
Verlosung Programmieren lernen mit Visual Basic 2005 10 Bücher werden unter allen Teil- nehmern verlost, die an mindes- tens sieben Webcasts teilnehmen
Visual Studio 2005 Express Kleine Geschwister des Visual Studio 2005 Kostenlos http://www.microsoft.com/germany/msdn/vstudio/products/express/vb/default.mspx Visual Basic 2005 Express Edition Visual C# 2005 Express Edition Visual C++ 2005 Express Edition Visual Web Developer 2005 Express Edition SQL Server 2005 Express Edition
Agenda Übungsaufgabe Teil 3 Klassen Übungsaufgabe Zusammenfassung Grundlagen Felder (oder Member-Variablen) Anlegen von Klassen Methoden Properties Konstruktoren und Destruktoren Übungsaufgabe Zusammenfassung
Übungsaufgabe Schreiben Sie ein Programm welches mit Hilfe einer Schleife die Zahlen 1, 4, 7, 10, 13 und 16 ausgibt. die Quadratzahlen von 0 bis 20 zeilenweise ausgibt Wichtig! Die Quadratzahl der Zahl 10 soll NICHT ausgegeben werden! einen halben Tannenbaum ausgibt * ** *** **** ***** ****** ******* ******** ********* ********** ***********
Übungsaufgabe, Teil 3, Lösung Schreiben Sie ein Programm welches mit Hilfe einer Schleife die Zahlen 1, 4, 7, 10, 13 und 16 ausgibt. Sub Main() For i As Integer = 1 To 16 Step 3 Console.Write(i & " ") Next End Sub
Übungsaufgabe, Teil 3, Lösung Schreiben Sie ein Programm welches mit Hilfe einer Schleife die Quadratzahlen von 0 bis 20 zeilenweise ausgibt Wichtig! Die Quadratzahl der Zahl 10 soll NICHT ausgegeben werden! Sub Main() For i As Integer = 0 To 20 If i <> 10 Then Console.WriteLine(" Die Quadratzahl von {0} ist {1}.", i, Math.Pow(i, 2)) End If Next End Sub
Übungsaufgabe, Teil 3, Lösung Schreiben Sie ein Programm welches mit Hilfe einer Schleife einen halben Tannenbaum ausgibt. Sub Main() For i As Integer = 0 To 13 For j As Integer = 0 To 13 If i < 11 Then Console.Write("*") If j = i Then Console.WriteLine() Exit For End If Else Console.WriteLine("***") Next ' j Next ' i End Sub
Demonstration #1 demo Übungsaufgaben, Teil 3
Agenda Übungsaufgabe Teil 3 Klassen Übungsaufgabe Zusammenfassung Grundlagen Felder (oder Member-Variablen) Anlegen von Klassen Methoden Properties Konstruktoren und Destruktoren Übungsaufgabe Zusammenfassung
Grundlagen Klassen sind so wichtig wie das Salz in der Suppe! Sie stellen den WICHTIGSTEN Datentyp in VB 2005 dar! Eine Klasse ist ein Datentyp, der ein Objekt beschreibt. Die einfachste (leere) Klasse: Class EinfachsteKlasse End Class
Grundlagen Klassen haben einen Namen (Typ) Klassen enthalten (evtl.) Felder Konstruktoren Destruktor Methoden Eigenschaften …
Agenda Übungsaufgabe Teil 3 Klassen Übungsaufgabe Zusammenfassung Grundlagen Felder (oder Member-Variablen) Anlegen von Klassen Methoden Properties Konstruktoren und Destruktoren Übungsaufgabe Zusammenfassung
Felder Felder sind einfach Variablen, die in der Klasse definiert sind Class NochEineEinfacheKlasse Dim EinWert As Integer = 5 Dim ZweiterWert As Double = 5.1234 Dim Text As String = "Hallo" End Class
Felder Auf Felder der Klasse kann nicht einfach so zugegriffen werden Dim ist gleichbedeutend mit dem Zugriffsmodifizierer Private Das Schlüsselwort Public verwenden Class Person Public Vorname As String Public Nachname As String Public Alter As Integer End Class
Felder Zugriff auf öffentliche (Public) Felder NameDesObjekts.FeldName Sub Main() Dim meinePerson As New Person meinePerson.Vorname = "Daniel" meinePerson.Nachname = "Walzenbach" meinePerson.Alter = 30 Console.WriteLine(meinePerson.Vorname) Console.WriteLine(meinePerson.Nachname) Console.WriteLine(meinePerson.Alter) End Sub
Felder Wenn zwei Objekte vom Typ Person angelegt werden, dann gibt es die enthaltenen Feldvariablen ebenfalls zweimal Sub Main() Dim meineErstePerson As New Person Dim meineZweitePerson As New Person meineErstePerson.Vorname = "Daniel" meineZweitePerson.Vorname = "Paul" Console.WriteLine(meineErstePerson.Vorname) Console.WriteLine(meineZweitePerson.Vorname) End Sub
Demonstration #2 demo Felder
Agenda Übungsaufgabe Teil 3 Klassen Übungsaufgabe Zusammenfassung Grundlagen Felder (oder Member-Variablen) Anlegen von Klassen Methoden Properties Konstruktoren und Destruktoren Übungsaufgabe Zusammenfassung
Anlegen eines Objektes Eine Klasse beschreibt ein Objekt Damit existiert es allerdings noch nicht! Das Objekt muss „angelegt“ bzw. „instanziert“ werden Objekte werden immer mit dem Befehl new instanziert Module Module1 Sub Main() Dim meinObjekt As EinfachsteKlasse meinObjekt = New EinfachsteKlasse ' kürzer ' Dim meinObjekt As New EinfachsteKlasse End Sub End Module Class EinfachsteKlasse End Class
Agenda Übungsaufgabe Teil 3 Klassen Übungsaufgabe Zusammenfassung Grundlagen Felder (oder Member-Variablen) Anlegen von Klassen Methoden Properties Konstruktoren und Destruktoren Übungsaufgabe Zusammenfassung
Felder Achtung! Öffentliche Felder sind nicht erwünscht In der objektorientierten Programmierung (OOP) gibt es das Konzept der „Kapselung“ In Klassen sind die Felder Private Es gibt allerdings öffentliche Methoden und Eigenschaften, die mit den Daten in den Feldern arbeiten
Methoden Methoden in Klassen sind die Befehle Der Befehl wird auf das entsprechende Objekt ausgeführt Beispiel für eine Klasse „Zahl“ Klasse „Zahl“: enthält eine Zahl (Public) Methode „Quadriere“ quadriert die Zahl in dem jeweiligen Objekt Methode „Lösche“ löscht die Zahl in den jeweiligen Objekt Methode „DividiereDurch“ teilt die Zahl durch den übergebenen Parameter
Methoden Methoden können Public oder Private deklariert sein Auf eine Methode kann nur dann von außerhalb zugegriffen werden, wenn diese mit Public deklariert wurde Innerhalb der Klasse kann auch eine mit Private deklarierte Methode aufgerufen werden
Methoden Methoden können einen oder mehrere Parameter haben Methoden können einen Rückgabewert haben Public Sub Addiere(ByVal Summand As Double) dieZahl = dieZahl + Summand End Sub Public Function Quadratwurzel() As Double Return System.Math.Sqrt(dieZahl) End Function
Agenda Übungsaufgabe Teil 3 Klassen Übungsaufgabe Zusammenfassung Grundlagen Felder (oder Member-Variablen) Anlegen von Klassen Methoden Properties Konstruktoren und Destruktoren Übungsaufgabe Zusammenfassung
Eigenschaften (Properties) Properties können die Eigenschaften eines Objekt ändern Properties können abgefragt (Get) und gesetzt (Set) werden können Auch Properties können Private oder Public sein Sind meistens Public Über Properties kann der Inhalt von Feldern gesetzt und ausgelesen werden
Eigenschaften (Properties) Wie wird eine Property implementiert? Class Zahl Private dieZahl As Double Public Property Wert() As Double Get Return dieZahl End Get Set(ByVal value As Double) dieZahl = Wert End Set End Property End Class
Agenda Übungsaufgabe Teil 3 Klassen Übungsaufgabe Zusammenfassung Grundlagen Felder (oder Member-Variablen) Anlegen von Klassen Methoden Properties Konstruktoren und Destruktoren Übungsaufgabe Zusammenfassung
Konstruktoren Konstruktoren werden aufgerufen, wenn ein Objekt erstellt (instanziert) wird (Befehl: new) In einem Konstruktor kann die Initialisierung eines Objekts programmiert werden Es kann mehrere Konstruktoren mit unterschiedlichen Parametern geben Je nach Aufruf mit new wird der entsprechende Konstruktor aufgerufen
Konstruktoren Ein Konstruktor für die Klasse „Zahl“ Class Zahl Private dieZahl As Double Public Sub New(ByVal Anfangswert As Double) dieZahl = Anfangswert End Sub Public Property Wert() As Double Get Return dieZahl End Get Set(ByVal value As Double) dieZahl = Wert End Set End Property End Class
Konstruktoren Konstruktoren werden in VB.NET in der „Sub New“ Methode definiert Konstruktoren sind meistens Public Wenn eine Klasse mehrere Konstruktoren beinhaltet müssen diese sich durch die Liste der Parameter untescheiden Der Konstruktor wird immer aufgerufen, wenn der new-Befehl verwendet wird Es wird immer nur ein Konstruktor aufgerufen (auch wenn mehrere vorhanden sind)
Destruktor Der Destruktor wird aufgerufen wenn ein Objekt zerstört wird Nur notwendig, wenn in der Klasse auf sogenannte unmanaged Ressourcen (Datei, Fenster, Datenbankverbindung) zugegriffen wird Der Destruktor soll nur programmiert werden wenn er benötigt wird
Agenda Übungsaufgabe Teil 3 Klassen Übungsaufgabe Zusammenfassung Grundlagen Felder (oder Member-Variablen) Anlegen von Klassen Methoden Properties Konstruktoren und Destruktoren Übungsaufgabe Zusammenfassung
Übungsaufgabe Programmieren Sie eine Klasse „Rechteck“ In der Klasse werden Breite und Höhe des Rechtecks festgehalten (als Integer) Schreiben Sie mehrere Konstruktoren „Leeres“ Rechteck initialisieren „Quadrat“ initialisieren „Rechteck“ mit Breite und Höhe initialisieren Schreiben Sie Properties für Breite und Höhe Schreiben Sie eine Methode „Zeichnen“ welche das Rechteck mit Console.WriteLine() darstellt
Agenda Übungsaufgabe Teil 3 Klassen Übungsaufgabe Zusammenfassung Grundlagen Felder (oder Member-Variablen) Anlegen von Klassen Methoden Properties Konstruktoren und Destruktoren Übungsaufgabe Zusammenfassung
Zusammenfassung Klassen beschreiben Objekte Objekte müssen aus Klassen instanziert werden Konstruktor Klassen können Methoden, Properties, Felder, Konstruktoren, einen Destruktor, etc. implementieren Methoden können parametrisiert werden Werte zurückliefern überschrieben werden
Nächste Termine VB.NET für Einsteiger und Umsteiger, Teil 5 Noch mehr Klassen und Strukturen Montag, 27.11.2006 16:00-17:00 Uhr VB.NET für Einsteiger und Umsteiger, Teil 6 Interfaces Montag, 04.12.2006 16:00-17:00 Uhr VB.NET für Einsteiger und Umsteiger, Teil 7 Strukturierte Ausnahmebehandlung Montag, 11.12.2006 16:00-17:00 Uhr
Referenzen & Downloads Visual Studio 2005 Express Editions http://www.microsoft.com/germany/msdn/vstudio/products/express/default.mspx Microsoft Visual Basic 2005 - Das Entwicklerbuch http://www.edv-buchversand.de/mspress/product.asp?cnt=product&id=ms-537&lng=0 MSDN Solve http://msdn-solve.de/
Verlosung Programmieren lernen mit Visual Basic 2005 10 Bücher werden unter allen Teil- nehmern verlost, die an mindes- tens sieben Webcasts teilnehmen
Questions and Answers Daniel Walzenbach daniel.walzenbach@microsoft.com http://blogs.msdn.com/walzenbach