390 likes | 510 Views
MSDN Webcast : VB.NET für Einsteiger und Umsteiger, Teil 5 Noch mehr Klassen und Strukturen (Level 100). Presenter : Daniel Walzenbach Technologieberater Microsoft Deutschland GmbH daniel.walzenbach@microsoft.com http://blogs.msdn.com/walzenbach. Verlosung.
E N D
MSDN Webcast:VB.NET für Einsteiger und Umsteiger, Teil 5Noch mehr 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
Weihnachtswebcast – Frage 2 • Was ist „Orion“? • Ein Sternbild am Himmel • Position 5 ein O • Ein C#-Befehl • Position 1 ein D • Ein VB-Befehl • Position 2 ein Q • Ein Raumschiff aus einer SciFi-Fernsehserie • Position 5 ein O • Lösungswortbiseinschl. 13.12.2006 an MsdnXmas@microsoft.com
Agenda • Übungsaufgabe Teil 4 • Grundlagen Stack/Heap • Klassen • Parameterübergabe steuern (ByVal, ByRef) • Vererbung • Hierarchien von Klassen • Überladen von Operatoren • Kernkonzepte der OOP • Strukturen • Übungsaufgabe • Zusammenfassung
Übungsaufgabe, Teil 4 • 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
Demonstration #1 demo Übungsaufgabe, Teil 4
Agenda • Übungsaufgabe Teil 4 • Grundlagen Stack/Heap • Parameterübergabe steuern (ByVal, ByRef) • Klassen • Vererbung • Hierarchien von Klassen • Überladen von Operatoren • Kernkonzepte der OOP • Strukturen • Übungsaufgabe • Zusammenfassung
Grundlagen Stack/Heap Heap Hund: Fiffi • Was ist ein Stack 3.14 5 Stackanfang 22.83 5 DimiAsInteger= 5 Referenz auf Fiffi Fiffi 123.14324 DimjAsInteger= i Referenz auf Fiffi Waldo 6.0 DimFiffiAsNewHund Fiffi.Name ="Fiffi" 90 DimWaldoAsHund Waldo =Fiffi Stackzeiger (Stack Pointer) Hier wird der nächste Wert eingetragen, danach wird der Stackzeiger erhöht Stackende
Demonstration #2 demo Demo Werte- und Referenztypen
Agenda • Übungsaufgabe Teil 4 • Grundlagen Stack/Heap • Parameterübergabe steuern (ByVal, ByRef) • Klassen • Vererbung • Hierarchien von Klassen • Überladen von Operatoren • Kernkonzepte der OOP • Strukturen • Übungsaufgabe • Zusammenfassung
Parameterübergabe steuern • Was passiert, wenn einer Methode ein Wert übergeben wird und dieser in der Methode geändert wird? • Ändert sich der Wert auch in der aufrufenden Methode? SubMain() DimmeinWertAsInteger= 5 WertErhoehen(meinWert) Console.WriteLine(meinWert) ' i = 6 ???? EndSub SubWertErhoehen(ByValWertAsInteger) Wert = Wert + 1 EndSub
Demonstration #3 demo Parameterübergabe mit ByVal und ByRef
Parameterübergabe steuern • Zusammenfassung
Agenda • Übungsaufgabe Teil 4 • Grundlagen Stack/Heap • Parameterübergabe steuern (ByVal, ByRef) • Klassen • Vererbung • Hierarchien von Klassen • Überladen von Operatoren • Kernkonzepte der OOP • Strukturen • Übungsaufgabe • Zusammenfassung
Klassen - Vererbung • Manchmal ist es sinnvoll, eine neue Klasse von einer bereits existierenden Klasse abzuleiten… • … wenn diese abgeleitete Klasse eine Sonderform der abgeleiteten Klasse ist • Die abgeleitete Klasse erbt die Eigenschaften der Basisklasse • Vererbung als „ist ein(e)“-Beziehung • Basisklasse aller .NET-Klassen ist System.Object
Klassen - Vererbung • Die neue, abgeleitete (spezielle) Klasse, „erbt“ alle öffentlichen (Public und Protected) „Fähigkeiten“ der Basisklasse • Öffentliche Methoden • Öffentliche Eigenschaften • Öffentliche Konstruktoren • Öffentliche Felder • Alle privaten Elemente bleiben verborgen • Protected- Zugriff nur von der eigenen oder abgeleiteten Klassen möglich
Klassen - Vererbung • Beispiel für Vererbung (Klassenhierarchie) Spezialisierung nimmt zu
Demonstration #4 demo Vererbung
Methoden überschreiben • Methoden, die in der Basisklasse mit Overridable implementiert sind, können in der abgeleiteten Klasse mit Overridesüberschrieben werden • Schlüsselwort Overrides verwenden • Das Verhalten der abgeleiteten Klasse kann so gegenüber der Basisklasse geändert werden
Abstrakte Klassen u. virtuelle Methoden • Abstrakte Klassen sind Vorlagen für andere Klassen • „Zwingen“ den Entwickler, in der abgeleiteten Klasse die vorhandenen Methoden zu implementieren PublicMustInheritClassTier ProtectedMustOverrideSubAtmen() EndClass PublicClassHund InheritsTier PublicNameAsString ProtectedOverridesSubAtmen() ' hier muss implementiert werden ' wie der Hund atmet EndSub EndClass
Versiegelte Klassen • Klassen können versiegelt werden um ein weiteres Ableiten von der Basisklasse zu verhindern • Schlüsselwort: NotInheritable • Vorsichtiger Umgang mit NotInheritable • Im .NET-Framework sind einige Klassen versiegelt • System.String, System.Console, System.Text.StringBuilder, …
Demonstration #5 demo Methoden überschreiben, abstrakte Klassen, virtuelle Methoden, versiegelte Typen
Operatorenüberladung • Auch Operatorenprozeduren genannt • Werden ausschließlich als statische Funktionen implementiert PublicSharedOperator+(ByValZahl1AsZahl,ByValZahl2AsZahl)AsZahl DimErgebnisAsNewZahl Ergebnis.Zahl = Zahl1.Zahl + Zahl2.Zahl ReturnErgebnis EndOperator
Demonstration #6 demo Operatorüberladung
Kernkonzepte der OOP • Klassen • Objekt • Methode • Ereignisse • Vererbung • Kapselung • Abstraktion • Polymorphie
Agenda • Übungsaufgabe Teil 4 • Grundlagen Stack/Heap • Parameterübergabe steuern (ByVal, ByRef) • Klassen • Vererbung • Hierarchien von Klassen • Überladen von Operatoren • Kernkonzepte der OOP • Strukturen • Übungsaufgabe • Zusammenfassung
Strukturen Übersicht • Strukturen • definieren einen zusammengesetzten Datentyp • haben ähnliche Eigenschaften wie Klassen • Strukturen – statt Klassen – sollten für Instanzen eines Typs verwendet werden, die • klein und kurzlebig sind und/oder • häufig in anderen Objekten eingebettet werden • Von einer Struktur kann NICHT abgeleitet werden • Eine Struktur kann nicht von einer Basis abgeleitet werden
Strukturen • Gemeinsamkeiten • Beide sind Container Typen • Beide können Konstruktoren, Methoden, Properties, Felder, … implementieren • Unterschiede • Klassen sind Referenztypen, Strukturen Wertetypen • Strukturen dürfen nicht leer sein • Strukturen sind nicht vererbbar • Strukturen benötigen keinen Konstruktor
Demonstration #7 demo Strukturen
Agenda • Übungsaufgabe Teil 4 • Grundlagen Stack/Heap • Parameterübergabe steuern (ByVal, ByRef) • Klassen • Vererbung • Hierarchien von Klassen • Überladen von Operatoren • Kernkonzepte der OOP • Strukturen • Übungsaufgabe • Zusammenfassung
Übungsaufgabe • Schreiben Sie eine Klasse, die alle Daten einer Person verwaltet • Name, Vorname, PLZ, Ort, Straße, Telefon • Überschreiben Sie die Methode ToString für die Ausgabe der Daten • Implementieren Sie Eigenschaften zum Setzen der Daten • Implementieren Sie eine einfache Prüfroutine für die PLZ (PLZ > 0und PLZ < 99999)
Agenda • Übungsaufgabe Teil 4 • Grundlagen Stack/Heap • Parameterübergabe steuern (ByVal, ByRef) • Klassen • Vererbung • Hierarchien von Klassen • Überladen von Operatoren • Kernkonzepte der OOP • Strukturen • Übungsaufgabe • Zusammenfassung
Zusammenfassung • Parameterübergabe (ByVal, ByRef) • Weitere Features von Klassen kennengelernt • Vererbung • Überschreiben von Methoden • Abstrakte Klassen • Versiegelte Klassen • Strukturen als leichtgewichtige, zusammengesetzte Datentypen (Wertetypen)
Nächste Termine • 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 • VB.NET für Einsteiger und Umsteiger, Teil 8 • Arrays • Montag, 18.12.2006 16:00-17:00 Uhr
Referenzen & Downloads • ObjektorientiertesProgrammieren in Visual Basic • http://msdn2.microsoft.com/de-de/library/b86b82w0(VS.80).aspx • Class-Anweisung • http://msdn2.microsoft.com/de-de/library/wa0hwf23(VS.80).aspx • Structure-Anweisung • http://msdn2.microsoft.com/de-de/library/k69kzbs1(VS.80).aspx • Vererbung in Visual Basic • http://msdn2.microsoft.com/de-de/library/5x4yd9d5(VS.80).aspx
Referenzen & Downloads • Behandeln und Auslösen von Ereignissen • http://msdn2.microsoft.com/de-de/library/edzehd2t(VS.80).aspx • Argument Passing ByVal and ByRef • http://msdn2.microsoft.com/en-us/library/ddck1z30(VS.71).aspx • Microsoft Visual Basic 2005 - Das Entwicklerbuch • http://www.edv-buchversand.de/mspress/product.asp?cnt=product&id=ms-537&lng=0 • MSDN Solve, AntwortenfürEntwickler • http://msdn-solve.de/
Questions and Answers Daniel Walzenbach daniel.walzenbach@microsoft.com http://blogs.msdn.com/walzenbach