1 / 39

Presenter : Daniel Walzenbach Technologieberater Microsoft Deutschland GmbH

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.

dory
Download Presentation

Presenter : Daniel Walzenbach Technologieberater Microsoft Deutschland GmbH

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 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

  2. Verlosung • Programmieren lernen mit Visual Basic 2005 • 10 Bücher werden unter allen Teil-nehmern verlost, die an mindes-tens sieben Webcasts teilnehmen

  3. 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

  4. 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

  5. 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

  6. Ü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

  7. Demonstration #1 demo Übungsaufgabe, Teil 4

  8. 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

  9. 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

  10. Demonstration #2 demo Demo Werte- und Referenztypen

  11. 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

  12. 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

  13. Demonstration #3 demo Parameterübergabe mit ByVal und ByRef

  14. Parameterübergabe steuern • Zusammenfassung

  15. 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

  16. 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

  17. 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

  18. Klassen - Vererbung • Beispiel für Vererbung (Klassenhierarchie) Spezialisierung nimmt zu

  19. Demonstration #4 demo Vererbung

  20. 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

  21. 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

  22. 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, …

  23. Demonstration #5 demo Methoden überschreiben, abstrakte Klassen, virtuelle Methoden, versiegelte Typen

  24. 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

  25. Demonstration #6 demo Operatorüberladung

  26. Kernkonzepte der OOP • Klassen • Objekt • Methode • Ereignisse • Vererbung • Kapselung • Abstraktion • Polymorphie

  27. 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

  28. 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

  29. 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

  30. Demonstration #7 demo Strukturen

  31. 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

  32. Ü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)

  33. 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

  34. Zusammenfassung • Parameterübergabe (ByVal, ByRef) • Weitere Features von Klassen kennengelernt • Vererbung • Überschreiben von Methoden • Abstrakte Klassen • Versiegelte Klassen • Strukturen als leichtgewichtige, zusammengesetzte Datentypen (Wertetypen)

  35. 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

  36. 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

  37. 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/

  38. Questions and Answers Daniel Walzenbach daniel.walzenbach@microsoft.com http://blogs.msdn.com/walzenbach

More Related