Upload
lewenhart-helmstetter
View
110
Download
2
Embed Size (px)
Citation preview
MSDN Webcast:MSDN Webcast:
VB.NET für Einsteiger und Umsteiger, VB.NET für Einsteiger und Umsteiger, Teil 4Teil 4Klassen und Strukturen Klassen und Strukturen (Level 100)(Level 100)
Presenter: Daniel WalzenbachPresenter: Daniel Walzenbach
TechnologieberaterTechnologieberaterMicrosoft Deutschland GmbHMicrosoft Deutschland [email protected]@microsoft.comhttp://blogs.msdn.com/walzenbachhttp://blogs.msdn.com/walzenbach
VerlosungVerlosung
Programmieren lernen mit Programmieren lernen mit Visual Basic 2005Visual Basic 2005
10 Bücher 10 Bücher werden unter allen Teil-werden unter allen Teil-nehmern verlost, die an nehmern verlost, die an mindes-mindes-tens sieben Webcasts teilnehmentens sieben Webcasts teilnehmen
Visual Studio 2005 Visual Studio 2005 ExpressExpressKleine Geschwister des Visual Studio Kleine Geschwister des Visual Studio 20052005
KostenlosKostenlos
http://www.microsoft.com/germany/http://www.microsoft.com/germany/msdn/vstudio/products/express/vb/msdn/vstudio/products/express/vb/default.mspxdefault.mspx
Visual Basic 2005 Express EditionVisual Basic 2005 Express Edition
Visual C# 2005 Express EditionVisual C# 2005 Express Edition
Visual C++ 2005 Express EditionVisual C++ 2005 Express Edition
Visual Web Developer 2005 Express Visual Web Developer 2005 Express EditionEdition
SQL Server 2005 Express EditionSQL Server 2005 Express Edition
AgendaAgenda
Übungsaufgabe Teil 3Übungsaufgabe Teil 3
KlassenKlassenGrundlagenGrundlagen
Felder (oder Member-Variablen)Felder (oder Member-Variablen)
Anlegen von KlassenAnlegen von Klassen
MethodenMethoden
PropertiesProperties
Konstruktoren und DestruktorenKonstruktoren und Destruktoren
ÜbungsaufgabeÜbungsaufgabe
ZusammenfassungZusammenfassung
ÜbungsaufgabeÜbungsaufgabe
Schreiben Sie ein Programm welches Schreiben Sie ein Programm welches mit Hilfe einer Schleifemit Hilfe einer Schleife
die Zahlen 1, 4, 7, 10, 13 und 16 ausgibt.die Zahlen 1, 4, 7, 10, 13 und 16 ausgibt.
die Quadratzahlen von 0 bis 20 die Quadratzahlen von 0 bis 20 zeilenweise ausgibtzeilenweise ausgibt
Wichtig! Die Quadratzahl der Zahl 10 soll Wichtig! Die Quadratzahl der Zahl 10 soll NICHT ausgegeben werden!NICHT ausgegeben werden!
einen halben Tannenbaum ausgibteinen halben Tannenbaum ausgibt***************************************************************************
Übungsaufgabe, Teil 3, Übungsaufgabe, Teil 3, LösungLösung
Sub Main() For i As Integer = 1 To 16 Step 3 Console.Write(i & " ") Next
End Sub
Schreiben Sie ein Programm welches Schreiben Sie ein Programm welches mit Hilfe einer Schleifemit Hilfe einer Schleife
die Zahlen 1, 4, 7, 10, 13 und 16 ausgibt.die Zahlen 1, 4, 7, 10, 13 und 16 ausgibt.
Übungsaufgabe, Teil 3, Übungsaufgabe, Teil 3, LösungLösung
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 NextEnd Sub
Schreiben Sie ein Programm welches Schreiben Sie ein Programm welches mit Hilfe einer Schleifemit Hilfe einer Schleife
die Quadratzahlen von 0 bis 20 die Quadratzahlen von 0 bis 20 zeilenweise ausgibtzeilenweise ausgibt
Wichtig! Die Quadratzahl der Zahl 10 soll Wichtig! Die Quadratzahl der Zahl 10 soll NICHT ausgegeben werden!NICHT ausgegeben werden!
Übungsaufgabe, Teil 3, Übungsaufgabe, Teil 3, LösungLösungSchreiben Sie ein Programm welches Schreiben Sie ein Programm welches mit Hilfe einer Schleifemit Hilfe einer Schleife
einen halbeneinen halbenTannenbaumTannenbaumausgibt.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("***") Exit For End If Next ' j Next ' i
End Sub
Demonstration #1Demonstration #1
demodemo
Übungsaufgaben, Teil 3Übungsaufgaben, Teil 3
AgendaAgenda
Übungsaufgabe Teil 3Übungsaufgabe Teil 3
KlassenKlassenGrundlagenGrundlagen
Felder (oder Member-Variablen)Felder (oder Member-Variablen)
Anlegen von KlassenAnlegen von Klassen
MethodenMethoden
PropertiesProperties
Konstruktoren und DestruktorenKonstruktoren und Destruktoren
ÜbungsaufgabeÜbungsaufgabe
ZusammenfassungZusammenfassung
GrundlagenGrundlagen
Klassen sind so wichtig wie das Salz in Klassen sind so wichtig wie das Salz in der Suppe! Sie stellen den der Suppe! Sie stellen den WICHTIGSTEN Datentyp in VB 2005 WICHTIGSTEN Datentyp in VB 2005 dar!dar!
Eine Klasse ist ein Datentyp, der ein Eine Klasse ist ein Datentyp, der ein Objekt beschreibt.Objekt beschreibt.
Die einfachste (leere) Klasse:Die einfachste (leere) Klasse:Class EinfachsteKlasse End Class
GrundlagenGrundlagen
Klassen haben einen Namen (Typ)Klassen haben einen Namen (Typ)
Klassen enthalten (evtl.)Klassen enthalten (evtl.)FelderFelder
KonstruktorenKonstruktoren
DestruktorDestruktor
MethodenMethoden
EigenschaftenEigenschaften
……
AgendaAgenda
Übungsaufgabe Teil 3Übungsaufgabe Teil 3
KlassenKlassenGrundlagenGrundlagen
Felder (oder Member-Variablen)Felder (oder Member-Variablen)
Anlegen von KlassenAnlegen von Klassen
MethodenMethoden
PropertiesProperties
Konstruktoren und DestruktorenKonstruktoren und Destruktoren
ÜbungsaufgabeÜbungsaufgabe
ZusammenfassungZusammenfassung
FelderFelder
Felder sind einfach Variablen, die in Felder sind einfach Variablen, die in der Klasse definiert sindder Klasse definiert sindClass NochEineEinfacheKlasse Dim EinWert As Integer = 5 Dim ZweiterWert As Double = 5.1234 Dim Text As String = "Hallo" End Class
FelderFelder
Auf Felder der Klasse kann nicht Auf Felder der Klasse kann nicht einfach so zugegriffen werdeneinfach so zugegriffen werden
DimDim ist gleichbedeutend mit dem ist gleichbedeutend mit dem Zugriffsmodifizierer Zugriffsmodifizierer PrivatePrivate
Das Schlüsselwort Public verwendenDas Schlüsselwort Public verwendenClass Person Public Vorname As String Public Nachname As String Public Alter As Integer End Class
FelderFelder
Zugriff auf öffentliche (Public) FelderZugriff auf öffentliche (Public) FelderNameDesObjekts.FeldNameNameDesObjekts.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
FelderFelder
Wenn zwei Objekte vom Typ Wenn zwei Objekte vom Typ PersonPerson angelegt werden, dann gibt es die angelegt werden, dann gibt es die enthaltenen Feldvariablen ebenfalls enthaltenen Feldvariablen ebenfalls zweimalzweimalSub 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 #2Demonstration #2
demodemo
FelderFelder
AgendaAgenda
Übungsaufgabe Teil 3Übungsaufgabe Teil 3
KlassenKlassenGrundlagenGrundlagen
Felder (oder Member-Variablen)Felder (oder Member-Variablen)
Anlegen von KlassenAnlegen von Klassen
MethodenMethoden
PropertiesProperties
Konstruktoren und DestruktorenKonstruktoren und Destruktoren
ÜbungsaufgabeÜbungsaufgabe
ZusammenfassungZusammenfassung
Anlegen eines ObjektesAnlegen eines Objektes
Eine Klasse beschreibt ein ObjektEine Klasse beschreibt ein Objekt
Damit existiert es allerdings noch Damit existiert es allerdings noch nicht!nicht!
Das Objekt muss „angelegt“ bzw. Das Objekt muss „angelegt“ bzw. „instanziert“ werden„instanziert“ werden
Objekte werdenObjekte werdenimmer mit dem immer mit dem Befehl Befehl newnew instanziertinstanziert
Module Module1 Sub Main() Dim meinObjekt As EinfachsteKlasse meinObjekt = New EinfachsteKlasse ' kürzer ' Dim meinObjekt As New EinfachsteKlasse End SubEnd Module Class EinfachsteKlasse End Class
AgendaAgenda
Übungsaufgabe Teil 3Übungsaufgabe Teil 3
KlassenKlassenGrundlagenGrundlagen
Felder (oder Member-Variablen)Felder (oder Member-Variablen)
Anlegen von KlassenAnlegen von Klassen
MethodenMethoden
PropertiesProperties
Konstruktoren und DestruktorenKonstruktoren und Destruktoren
ÜbungsaufgabeÜbungsaufgabe
ZusammenfassungZusammenfassung
FelderFelder
Achtung! Öffentliche Felder sind nicht Achtung! Öffentliche Felder sind nicht erwünschterwünscht
In der objektorientierten In der objektorientierten Programmierung (OOP) gibt es das Programmierung (OOP) gibt es das Konzept der „Kapselung“Konzept der „Kapselung“
In Klassen sind die Felder In Klassen sind die Felder PrivatePrivateEs gibt allerdings öffentliche Methoden Es gibt allerdings öffentliche Methoden und Eigenschaften, die mit den Daten in und Eigenschaften, die mit den Daten in den Feldern arbeitenden Feldern arbeiten
MethodenMethoden
Methoden in Klassen sind die BefehleMethoden in Klassen sind die Befehle
Der Befehl wird auf das Der Befehl wird auf das entsprechende Objekt ausgeführtentsprechende Objekt ausgeführt
Beispiel für eine Klasse „Beispiel für eine Klasse „ZahlZahl““Klasse „Klasse „ZahlZahl“: enthält eine Zahl (“: enthält eine Zahl (PublicPublic))
Methode „Methode „QuadriereQuadriere“ quadriert die Zahl “ quadriert die Zahl in dem jeweiligen Objektin dem jeweiligen Objekt
Methode „Methode „LöscheLösche“ löscht die Zahl in den “ löscht die Zahl in den jeweiligen Objektjeweiligen Objekt
Methode „Methode „DividiereDurchDividiereDurch“ teilt die Zahl “ teilt die Zahl durch den übergebenen Parameterdurch den übergebenen Parameter
MethodenMethoden
Methoden können Methoden können PublicPublic oder oder PrivatePrivate deklariert sein deklariert sein
Auf eine Methode kann nur dann von Auf eine Methode kann nur dann von außerhalb zugegriffen werden, wenn außerhalb zugegriffen werden, wenn diese mit diese mit PublicPublic deklariert wurde deklariert wurde
Innerhalb der Klasse kann auch eine mit Innerhalb der Klasse kann auch eine mit PrivatePrivate deklarierte Methode aufgerufen deklarierte Methode aufgerufen werdenwerden
MethodenMethoden
Methoden können einen oder mehrere Methoden können einen oder mehrere Parameter habenParameter haben
Methoden können einen Methoden können einen Rückgabewert habenRü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
AgendaAgenda
Übungsaufgabe Teil 3Übungsaufgabe Teil 3
KlassenKlassenGrundlagenGrundlagen
Felder (oder Member-Variablen)Felder (oder Member-Variablen)
Anlegen von KlassenAnlegen von Klassen
MethodenMethoden
PropertiesProperties
Konstruktoren und DestruktorenKonstruktoren und Destruktoren
ÜbungsaufgabeÜbungsaufgabe
ZusammenfassungZusammenfassung
Eigenschaften (Properties)Eigenschaften (Properties)
Properties können die Eigenschaften Properties können die Eigenschaften eines Objekt änderneines Objekt ändern
Properties können abgefragt (Properties können abgefragt (GetGet) ) und gesetzt (und gesetzt (SetSet) werden können) werden können
Auch Properties können Auch Properties können PrivatePrivate oder oder PublicPublic sein sein
Sind meistens Sind meistens PublicPublic
Über Properties kann der Inhalt von Über Properties kann der Inhalt von Feldern gesetzt und ausgelesen Feldern gesetzt und ausgelesen werdenwerden
Eigenschaften (Properties)Eigenschaften (Properties)
Wie wird eine Property implementiert?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
AgendaAgenda
Übungsaufgabe Teil 3Übungsaufgabe Teil 3
KlassenKlassenGrundlagenGrundlagen
Felder (oder Member-Variablen)Felder (oder Member-Variablen)
Anlegen von KlassenAnlegen von Klassen
MethodenMethoden
PropertiesProperties
Konstruktoren und DestruktorenKonstruktoren und Destruktoren
ÜbungsaufgabeÜbungsaufgabe
ZusammenfassungZusammenfassung
KonstruktorenKonstruktoren
Konstruktoren werden aufgerufen, Konstruktoren werden aufgerufen, wenn ein Objekt erstellt (instanziert) wenn ein Objekt erstellt (instanziert) wird (Befehl: wird (Befehl: newnew))
In einem Konstruktor kann die In einem Konstruktor kann die Initialisierung eines Objekts Initialisierung eines Objekts programmiert werdenprogrammiert werden
Es kann mehrere Konstruktoren mit Es kann mehrere Konstruktoren mit unterschiedlichen Parametern gebenunterschiedlichen Parametern geben
Je nach Aufruf mit Je nach Aufruf mit newnew wird der wird der entsprechende Konstruktor aufgerufenentsprechende Konstruktor aufgerufen
KonstruktorenKonstruktoren
Ein Konstruktor für die Klasse „Zahl“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
KonstruktorenKonstruktoren
Konstruktoren werden in VB.NET in Konstruktoren werden in VB.NET in der „Sub New“ Methode definiertder „Sub New“ Methode definiert
Konstruktoren sind meistens Konstruktoren sind meistens PublicPublic
Wenn eine Klasse mehrere Wenn eine Klasse mehrere Konstruktoren beinhaltet müssen Konstruktoren beinhaltet müssen diese sich durch die Liste der diese sich durch die Liste der Parameter untescheidenParameter untescheiden
Der Konstruktor wird immer Der Konstruktor wird immer aufgerufen, wenn der aufgerufen, wenn der newnew-Befehl -Befehl verwendet wirdverwendet wird
Es wird immer nur ein Konstruktor Es wird immer nur ein Konstruktor aufgerufen (auch wenn mehrere aufgerufen (auch wenn mehrere vorhanden sind)vorhanden sind)
DestruktorDestruktor
Der Destruktor wird aufgerufen wenn Der Destruktor wird aufgerufen wenn ein Objekt zerstört wirdein Objekt zerstört wird
Nur notwendig, wenn in der Klasse Nur notwendig, wenn in der Klasse auf sogenannte unmanaged auf sogenannte unmanaged Ressourcen (Datei, Fenster, Ressourcen (Datei, Fenster, Datenbankverbindung) zugegriffen Datenbankverbindung) zugegriffen wirdwird
Der Destruktor soll nur programmiert Der Destruktor soll nur programmiert werden wenn er benötigt wirdwerden wenn er benötigt wird
AgendaAgenda
Übungsaufgabe Teil 3Übungsaufgabe Teil 3
KlassenKlassenGrundlagenGrundlagen
Felder (oder Member-Variablen)Felder (oder Member-Variablen)
Anlegen von KlassenAnlegen von Klassen
MethodenMethoden
PropertiesProperties
Konstruktoren und DestruktorenKonstruktoren und Destruktoren
ÜbungsaufgabeÜbungsaufgabe
ZusammenfassungZusammenfassung
ÜbungsaufgabeÜbungsaufgabe
Programmieren Sie eine Klasse Programmieren Sie eine Klasse „Rechteck“„Rechteck“
In der Klasse werden Breite und Höhe In der Klasse werden Breite und Höhe des Rechtecks festgehalten (als des Rechtecks festgehalten (als Integer)Integer)
Schreiben Sie mehrere KonstruktorenSchreiben Sie mehrere Konstruktoren„„Leeres“ Rechteck initialisierenLeeres“ Rechteck initialisieren
„„Quadrat“ initialisierenQuadrat“ initialisieren
„„Rechteck“ mit Breite und Höhe initialisierenRechteck“ mit Breite und Höhe initialisieren
Schreiben Sie Properties für Breite und Schreiben Sie Properties für Breite und HöheHöhe
Schreiben Sie eine Methode Schreiben Sie eine Methode „Zeichnen“ welche das Rechteck mit „Zeichnen“ welche das Rechteck mit Console.WriteLine()Console.WriteLine() darstellt darstellt
AgendaAgenda
Übungsaufgabe Teil 3Übungsaufgabe Teil 3
KlassenKlassenGrundlagenGrundlagen
Felder (oder Member-Variablen)Felder (oder Member-Variablen)
Anlegen von KlassenAnlegen von Klassen
MethodenMethoden
PropertiesProperties
Konstruktoren und DestruktorenKonstruktoren und Destruktoren
ÜbungsaufgabeÜbungsaufgabe
ZusammenfassungZusammenfassung
ZusammenfassungZusammenfassung
Klassen beschreiben ObjekteKlassen beschreiben Objekte
Objekte müssen aus Klassen instanziert Objekte müssen aus Klassen instanziert werdenwerden
KonstruktorKonstruktor
Klassen können Methoden, Properties, Klassen können Methoden, Properties, Felder, Konstruktoren, einen Destruktor, Felder, Konstruktoren, einen Destruktor, etc. implementierenetc. implementieren
Methoden können Methoden können parametrisiert werdenparametrisiert werden
Werte zurückliefernWerte zurückliefern
überschrieben werdenüberschrieben werden
Nächste TermineNächste Termine
VB.NET für Einsteiger und Umsteiger, Teil 5VB.NET für Einsteiger und Umsteiger, Teil 5Noch mehr Klassen und StrukturenNoch mehr Klassen und Strukturen
Montag, 27.11.2006 16:00-17:00 UhrMontag, 27.11.2006 16:00-17:00 Uhr
VB.NET für Einsteiger und Umsteiger, Teil 6VB.NET für Einsteiger und Umsteiger, Teil 6Interfaces Interfaces
Montag, 04.12.2006 16:00-17:00 UhrMontag, 04.12.2006 16:00-17:00 Uhr
VB.NET für Einsteiger und Umsteiger, Teil 7VB.NET für Einsteiger und Umsteiger, Teil 7Strukturierte Ausnahmebehandlung Strukturierte Ausnahmebehandlung
Montag, 11.12.2006 16:00-17:00 UhrMontag, 11.12.2006 16:00-17:00 Uhr
Referenzen & DownloadsReferenzen & Downloads
Visual Studio 2005 Express EditionsVisual Studio 2005 Express Editionshttp://www.microsoft.com/germany/msdn/http://www.microsoft.com/germany/msdn/vstudio/products/express/default.mspxvstudio/products/express/default.mspx
Microsoft Visual Basic 2005 - Das Microsoft Visual Basic 2005 - Das EntwicklerbuchEntwicklerbuch
http://www.edv-buchversand.de/mspress/http://www.edv-buchversand.de/mspress/product.asp?cnt=product&id=ms-537&lng=0product.asp?cnt=product&id=ms-537&lng=0
MSDN SolveMSDN Solvehttp://msdn-solve.de/http://msdn-solve.de/
VerlosungVerlosung
Programmieren lernen mit Programmieren lernen mit Visual Basic 2005Visual Basic 2005
10 Bücher 10 Bücher werden unter allen Teil-werden unter allen Teil-nehmern verlost, die an nehmern verlost, die an mindes-mindes-tens sieben Webcasts teilnehmentens sieben Webcasts teilnehmen
Questions and AnswersQuestions and Answers
Daniel [email protected] http://blogs.msdn.com/walzenbach