Post on 05-Apr-2015
MSDN Webcast:MSDN Webcast:
VB.NET für Einsteiger und Umsteiger, VB.NET für Einsteiger und Umsteiger, Teil 5Teil 5Noch mehr Klassen und Strukturen Noch mehr Klassen und Strukturen (Level 100)(Level 100)
Presenter: Daniel WalzenbachPresenter: Daniel Walzenbach
TechnologieberaterTechnologieberaterMicrosoft Deutschland GmbHMicrosoft Deutschland GmbHdaniel.walzenbach@microsoft.comhttp://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/msdn/vstudio/products/express/vb/default.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
Weihnachtswebcast – Weihnachtswebcast – Frage 2Frage 2Was ist „Orion“?Was ist „Orion“?
Ein Sternbild am Himmel Ein Sternbild am Himmel Position 5 ein OPosition 5 ein O
Ein C#-Befehl Ein C#-Befehl Position 1 ein DPosition 1 ein D
Ein VB-Befehl Ein VB-Befehl Position 2 ein QPosition 2 ein Q
Ein Raumschiff aus einer SciFi-Ein Raumschiff aus einer SciFi-Fernsehserie Fernsehserie
Position 5 ein OPosition 5 ein O
Lösungswort bis einschl. 13.12.2006 Lösungswort bis einschl. 13.12.2006 an an MsdnXmas@microsoft.com
AgendaAgenda
Übungsaufgabe Teil 4Übungsaufgabe Teil 4
Grundlagen Stack/HeapGrundlagen Stack/Heap
KlassenKlassenParameterübergabe steuern (ByVal, ByRef)Parameterübergabe steuern (ByVal, ByRef)
VererbungVererbung
Hierarchien von KlassenHierarchien von Klassen
Überladen von OperatorenÜberladen von Operatoren
Kernkonzepte der OOPKernkonzepte der OOP
StrukturenStrukturen
ÜbungsaufgabeÜbungsaufgabe
ZusammenfassungZusammenfassung
Übungsaufgabe, Teil 4Übungsaufgabe, Teil 4
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
Demonstration #1Demonstration #1
demodemo
Übungsaufgabe, Teil 4Übungsaufgabe, Teil 4
AgendaAgenda
Übungsaufgabe Teil 4Übungsaufgabe Teil 4
Grundlagen Stack/HeapGrundlagen Stack/Heap
Parameterübergabe steuern (ByVal, ByRef)Parameterübergabe steuern (ByVal, ByRef)
KlassenKlassenVererbungVererbung
Hierarchien von KlassenHierarchien von Klassen
Überladen von OperatorenÜberladen von Operatoren
Kernkonzepte der OOPKernkonzepte der OOP
StrukturenStrukturen
ÜbungsaufgabeÜbungsaufgabe
ZusammenfassungZusammenfassung
Heap
Waldo
Fiffi
5
5
Grundlagen Stack/HeapGrundlagen Stack/Heap
Was ist ein StackWas ist ein Stack
22.83
123.14324
6.0
90
Stackanfang
Stackende
Stackzeiger (Stack Pointer)
Hier wird der nächste Wert eingetragen, danach wird der Stackzeiger erhöht
Hund: Fiffi
Dim Fiffi As New HundFiffi.Name = "Fiffi"
Dim i As Integer = 5
Dim j As Integer = i
3.14
Dim Waldo As HundWaldo = Fiffi
Referenz auf Fiffi
Referenz auf Fiffi
Demonstration #2Demonstration #2
demodemo
Demo Werte- und ReferenztypenDemo Werte- und Referenztypen
AgendaAgenda
Übungsaufgabe Teil 4Übungsaufgabe Teil 4
Grundlagen Stack/HeapGrundlagen Stack/Heap
Parameterübergabe steuern (ByVal, Parameterübergabe steuern (ByVal, ByRef)ByRef)
KlassenKlassenVererbungVererbung
Hierarchien von KlassenHierarchien von Klassen
Überladen von OperatorenÜberladen von Operatoren
Kernkonzepte der OOPKernkonzepte der OOP
StrukturenStrukturen
ÜbungsaufgabeÜbungsaufgabe
ZusammenfassungZusammenfassung
Parameterübergabe Parameterübergabe steuernsteuernWas passiert, wenn einer Methode ein Was passiert, wenn einer Methode ein Wert übergeben wird und dieser in Wert übergeben wird und dieser in der Methode geändert wird?der Methode geändert wird?
Ändert sich der Wert auch in der Ändert sich der Wert auch in der aufrufenden Methode?aufrufenden Methode?
Sub Main() Dim meinWert As Integer = 5 WertErhoehen(meinWert) Console.WriteLine(meinWert) ' i = 6 ???? End Sub Sub WertErhoehen(ByVal Wert As Integer) Wert = Wert + 1End Sub
Demonstration #3Demonstration #3
demodemo
Parameterübergabe mit Parameterübergabe mit ByValByVal und und ByRefByRef
Parameterübergabe Parameterübergabe steuernsteuernZusammenfassungZusammenfassung
Typ Übergabe ByVal Übergabe ByRef
Wertetyp (beinhaltet einen Wert)
Methode kann weder die Variable noch Feldvariablen ändern.
Methode kann die Variable und Feldvariablen ändern.
Referenztyp (beinhaltet eine Referenz auf eine Instanz einer Klasse oder Struktur)
Methode kann die Variable nicht, jedoch Feldvariablen der Instanz welche die Variable referenziert, ändern.
Methode kann die Variable, sowie Feldvariablen der Instanz welche die Variable referenziert, ändern.
AgendaAgenda
Übungsaufgabe Teil 4Übungsaufgabe Teil 4
Grundlagen Stack/HeapGrundlagen Stack/Heap
Parameterübergabe steuern (ByVal, ByRef)Parameterübergabe steuern (ByVal, ByRef)
KlassenKlassenVererbungVererbung
Hierarchien von KlassenHierarchien von Klassen
Überladen von OperatorenÜberladen von Operatoren
Kernkonzepte der OOPKernkonzepte der OOP
StrukturenStrukturen
ÜbungsaufgabeÜbungsaufgabe
ZusammenfassungZusammenfassung
Klassen - VererbungKlassen - Vererbung
Manchmal ist es sinnvoll, eine neue Manchmal ist es sinnvoll, eine neue Klasse von einer bereits existierenden Klasse von einer bereits existierenden Klasse abzuleiten…Klasse abzuleiten…
… … wenn diese abgeleitete Klasse eine wenn diese abgeleitete Klasse eine Sonderform der abgeleiteten Klasse istSonderform der abgeleiteten Klasse ist
Die abgeleitete Klasse erbt die Die abgeleitete Klasse erbt die Eigenschaften der BasisklasseEigenschaften der Basisklasse
Vererbung als „ist ein(e)“-BeziehungVererbung als „ist ein(e)“-Beziehung
Basisklasse aller .NET-Klassen ist Basisklasse aller .NET-Klassen ist System.ObjectSystem.Object
Klassen - VererbungKlassen - Vererbung
Die neue, abgeleitete (spezielle) Die neue, abgeleitete (spezielle) Klasse, „erbt“ alle öffentlichen Klasse, „erbt“ alle öffentlichen ((PublicPublic und und ProtectedProtected) ) „Fähigkeiten“ der Basisklasse„Fähigkeiten“ der Basisklasse
Öffentliche MethodenÖffentliche Methoden
Öffentliche EigenschaftenÖffentliche Eigenschaften
Öffentliche KonstruktorenÖffentliche Konstruktoren
Öffentliche FelderÖffentliche Felder
Alle privaten Elemente bleiben Alle privaten Elemente bleiben verborgenverborgen
ProtectedProtected -- Zugriff nur von der Zugriff nur von der eigenen oder abgeleiteten Klassen eigenen oder abgeleiteten Klassen möglichmöglich
Klassen - VererbungKlassen - Vererbung
Beispiel für Vererbung Beispiel für Vererbung (Klassenhierarchie)(Klassenhierarchie)
Spezialisierung nim
mt zu
Demonstration #4Demonstration #4
demodemo
VererbungVererbung
Methoden überschreibenMethoden überschreiben
Methoden, die in der Basisklasse mit Methoden, die in der Basisklasse mit OverridableOverridable implementiert sind, implementiert sind, können in der abgeleiteten Klasse mit können in der abgeleiteten Klasse mit Overrides Overrides überschrieben werdenüberschrieben werden
Schlüsselwort Schlüsselwort OverridesOverrides verwenden verwenden
Das Verhalten der abgeleiteten Klasse Das Verhalten der abgeleiteten Klasse kann so gegenüber der Basisklasse kann so gegenüber der Basisklasse geändert werdengeändert werden
Abstrakte Klassen u. virtuelle Abstrakte Klassen u. virtuelle MethodenMethoden
Abstrakte Klassen sind Vorlagen für Abstrakte Klassen sind Vorlagen für andere Klassenandere Klassen
„„Zwingen“ den Entwickler, in der Zwingen“ den Entwickler, in der abgeleiteten Klasse die vorhandenen abgeleiteten Klasse die vorhandenen Methoden zu implementierenMethoden zu implementieren
Public MustInherit Class Tier Protected MustOverride Sub Atmen()End Class Public Class Hund Inherits Tier Public Name As String Protected Overrides Sub Atmen() ' hier muss implementiert werden ' wie der Hund atmet End SubEnd Class
Versiegelte KlassenVersiegelte Klassen
Klassen können versiegelt werden um Klassen können versiegelt werden um ein weiteres Ableiten von der ein weiteres Ableiten von der Basisklasse zu verhindernBasisklasse zu verhindern
Schlüsselwort: Schlüsselwort: NotInheritableNotInheritable
Vorsichtiger Umgang mit Vorsichtiger Umgang mit NotInheritableNotInheritable
Im .NET-Framework sind einige Im .NET-Framework sind einige Klassen versiegeltKlassen versiegeltSystem.StringSystem.String, , System.ConsoleSystem.Console, , System.Text.StringBuilderSystem.Text.StringBuilder, …, …
Demonstration #5Demonstration #5
demodemo
Methoden überschreiben, abstrakte Methoden überschreiben, abstrakte Klassen, virtuelle Methoden, Klassen, virtuelle Methoden, versiegelte Typenversiegelte Typen
OperatorenüberladungOperatorenüberladung
Auch Operatorenprozeduren genanntAuch Operatorenprozeduren genanntWerden ausschließlich als statische Werden ausschließlich als statische Funktionen implementiertFunktionen implementiert
Public Shared Operator +(ByVal Zahl1 As Zahl, ByVal Zahl2 As Zahl) As Zahl Dim Ergebnis As New Zahl Ergebnis.Zahl = Zahl1.Zahl + Zahl2.Zahl Return Ergebnis End Operator
Demonstration #6Demonstration #6
demodemo
OperatorüberladungOperatorüberladung
Kernkonzepte der OOPKernkonzepte der OOP
KlassenKlassen
ObjektObjekt
MethodeMethode
EreignisseEreignisse
VererbungVererbung
KapselungKapselung
AbstraktionAbstraktion
PolymorphiePolymorphie
AgendaAgenda
Übungsaufgabe Teil 4Übungsaufgabe Teil 4
Grundlagen Stack/HeapGrundlagen Stack/Heap
Parameterübergabe steuern (ByVal, ByRef)Parameterübergabe steuern (ByVal, ByRef)
KlassenKlassenVererbungVererbung
Hierarchien von KlassenHierarchien von Klassen
Überladen von OperatorenÜberladen von Operatoren
Kernkonzepte der OOPKernkonzepte der OOP
StrukturenStrukturen
ÜbungsaufgabeÜbungsaufgabe
ZusammenfassungZusammenfassung
Strukturen ÜbersichtStrukturen Übersicht
StrukturenStrukturendefinieren einen zusammengesetzten Datentypdefinieren einen zusammengesetzten Datentyp
haben ähnliche Eigenschaften wie Klassenhaben ähnliche Eigenschaften wie Klassen
Strukturen – statt Klassen – sollten für Strukturen – statt Klassen – sollten für Instanzen eines Typs verwendet werden, Instanzen eines Typs verwendet werden, diedie
klein und kurzlebig sind und/oderklein und kurzlebig sind und/oder
häufig in anderen Objekten eingebettet werdenhäufig in anderen Objekten eingebettet werden
Von einer Struktur kann NICHT abgeleitet Von einer Struktur kann NICHT abgeleitet werdenwerden
Eine Struktur kann nicht von einer Basis Eine Struktur kann nicht von einer Basis abgeleitet werdenabgeleitet werden
StrukturenStrukturen
GemeinsamkeitenGemeinsamkeitenBeide sind Container TypenBeide sind Container Typen
Beide können Konstruktoren, Methoden, Beide können Konstruktoren, Methoden, Properties, Felder, … implementierenProperties, Felder, … implementieren
UnterschiedeUnterschiedeKlassen sind Referenztypen, Strukturen Klassen sind Referenztypen, Strukturen WertetypenWertetypen
Strukturen dürfen nicht leer seinStrukturen dürfen nicht leer sein
Strukturen sind nicht vererbbarStrukturen sind nicht vererbbar
Strukturen benötigen keinen KonstruktorStrukturen benötigen keinen Konstruktor
Demonstration #7Demonstration #7
demodemo
StrukturenStrukturen
AgendaAgenda
Übungsaufgabe Teil 4Übungsaufgabe Teil 4
Grundlagen Stack/HeapGrundlagen Stack/Heap
Parameterübergabe steuern (ByVal, ByRef)Parameterübergabe steuern (ByVal, ByRef)
KlassenKlassenVererbungVererbung
Hierarchien von KlassenHierarchien von Klassen
Überladen von OperatorenÜberladen von Operatoren
Kernkonzepte der OOPKernkonzepte der OOP
StrukturenStrukturen
ÜbungsaufgabeÜbungsaufgabe
ZusammenfassungZusammenfassung
ÜbungsaufgabeÜbungsaufgabe
Schreiben Sie eine Klasse, die alle Schreiben Sie eine Klasse, die alle Daten einer Person verwaltetDaten einer Person verwaltet
Name, Vorname, PLZ, Ort, Straße, Name, Vorname, PLZ, Ort, Straße, TelefonTelefon
Überschreiben Sie die Methode Überschreiben Sie die Methode ToStringToString für die Ausgabe der Daten für die Ausgabe der Daten
Implementieren Sie Eigenschaften Implementieren Sie Eigenschaften zum Setzen der Datenzum Setzen der Daten
Implementieren Sie eine einfache Implementieren Sie eine einfache Prüfroutine für die PLZ (Prüfroutine für die PLZ (PLZ > 0PLZ > 0 und und PLZ < 99999PLZ < 99999))
AgendaAgenda
Übungsaufgabe Teil 4Übungsaufgabe Teil 4
Grundlagen Stack/HeapGrundlagen Stack/Heap
Parameterübergabe steuern (ByVal, ByRef)Parameterübergabe steuern (ByVal, ByRef)
KlassenKlassenVererbungVererbung
Hierarchien von KlassenHierarchien von Klassen
Überladen von OperatorenÜberladen von Operatoren
Kernkonzepte der OOPKernkonzepte der OOP
StrukturenStrukturen
ÜbungsaufgabeÜbungsaufgabe
ZusammenfassungZusammenfassung
ZusammenfassungZusammenfassung
Parameterübergabe (Parameterübergabe (ByValByVal, , ByRefByRef))
Weitere Features von Klassen Weitere Features von Klassen kennengelerntkennengelernt
VererbungVererbung
Überschreiben von MethodenÜberschreiben von Methoden
Abstrakte KlassenAbstrakte Klassen
Versiegelte KlassenVersiegelte Klassen
Strukturen als leichtgewichtige, Strukturen als leichtgewichtige, zusammengesetzte Datentypen zusammengesetzte Datentypen (Wertetypen)(Wertetypen)
Nächste TermineNächste Termine
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
VB.NET für Einsteiger und Umsteiger, Teil 8VB.NET für Einsteiger und Umsteiger, Teil 8ArraysArrays
Montag, 18.12.2006 16:00-17:00 UhrMontag, 18.12.2006 16:00-17:00 Uhr
Referenzen & DownloadsReferenzen & Downloads
Objektorientiertes Programmieren in Visual Objektorientiertes Programmieren in Visual BasicBasic
http://msdn2.microsoft.com/de-de/library/b86b82w0(VS.80).aspx
Class-Anweisung Class-Anweisung http://msdn2.microsoft.com/de-de/library/wa0hwf23(VS.80).aspx
Structure-AnweisungStructure-Anweisunghttp://msdn2.microsoft.com/de-de/library/k69kzbs1(VS.80).aspx
Vererbung in Visual BasicVererbung in Visual Basichttp://msdn2.microsoft.com/de-de/library/5x4yd9d5(VS.80).aspx
Referenzen & DownloadsReferenzen & Downloads
Behandeln und Auslösen von EreignissenBehandeln und Auslösen von Ereignissenhttp://msdn2.microsoft.com/de-de/library/http://msdn2.microsoft.com/de-de/library/edzehd2t(VS.80).aspxedzehd2t(VS.80).aspx
Argument Passing ByVal and ByRefArgument Passing ByVal and ByRefhttp://msdn2.microsoft.com/en-us/library/http://msdn2.microsoft.com/en-us/library/ddck1z30(VS.71).aspxddck1z30(VS.71).aspx
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 Solve, Antworten für EntwicklerMSDN Solve, Antworten für Entwicklerhttp://msdn-solve.de/http://msdn-solve.de/
Questions and AnswersQuestions and Answers
Daniel Walzenbachdaniel.walzenbach@microsoft.com http://blogs.msdn.com/walzenbach