MSDN Webcast: VB.NET für Einsteiger und Umsteiger, Teil 6 Schnittstellen (Interfaces) (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 8 In welchen Jahr wurde Microsoft gegründet? 1995 Position 1 ein C 1830 Position 13 ein S Kurz bevor Windows kam Position 10 ein L 1975 Position 2 und 10 ein I Lösungswort bis einschl. 13.12.2006 an MsdnXmas@microsoft.com
Agenda Übungsaufgabe Teil 5 Kombinierte Formatierung Schnittstellen Zusammenfassung
Übungsaufgabe, Teil 5 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 > 0 und PLZ < 99999)
Demonstration #1 demo Übungsaufgabe, Teil 5
Agenda Übungsaufgabe Teil 5 Kombinierte Formatierung Schnittstellen Zusammenfassung
Kombinierte Formatierung Werte in einem Text mit Platzhaltern einbetten Alle Formatelemente (nullbasierend) weisen folgende Form auf: Mehrere Formatelemente können auf dasselbe Element in der Werteliste verweisen Jedes Formatelement kann auf einen beliebigen Parameter verweisen Dim Name As String = "Daniel" Console.WriteLine("Hallo {0}!", Name) {Index[,Ausrichtung][:Formatzeichenfolge]}
Kombinierte Formatierung Ausrichtung [optional] Gibt die gewünschte formatierte Feldbreite an Ist die Ausrichtung kleiner als die Länge der formatierten Zeichenfolge, wird diese ignoriert, ansonsten mit Leerzeichen aufgefüllt Positiver Wert rechtsbündige Ausrichtung Negativer Wert linksbündige Ausrichtung {Index[,Ausrichtung][:Formatzeichenfolge]} Dim Name As String = "Daniel" Console.WriteLine("Hallo {0,10}!", Name) ' Hallo Daniel! 10 Zeichen
Kombinierte Formatierung Formatzeichenfolge [optional] Standardformatbezeichnern benutzerdefinierten Formatbezeichnern Doppelpunkt ist erforderlich Ausrichtung und Formatzeichenfolgen können kombiniert werden {Index[,Ausrichtung][:Formatzeichenfolge]} Console.WriteLine("{0:X} ~ {0:E} ~ {0:N} ~ {0:C}", 255) ' FF ~ 2,550000E+002 ~ 255,00 ~ 255,00 € Dim myDouble As Double = System.Math.PI myDouble = String.Format("**{0,10:##.###}**", myDouble) ' ** 3,142** 10 Zeichen
Demonstration #2 demo Kombinierte Formatierung
Agenda Übungsaufgabe Teil 5 Kombinierte Formatierung Schnittstellen Zusammenfassung
Schnittstellen Was sind Schnittstellen (= Interfaces)? Schnittstellen definieren „Verhaltensweisen“ Eine Schnittstelle ist ein Vertrag zwischen getrennten Codeteilen Wenn eine Klasse eine Schnittstelle benutzt (implementiert) ist sichergestellt, dass die Klasse ALLE Methoden, Eigenschaften, … der Schnittstelle implementiert! Die Schnittstelle darf nach der Veröffentlichung NICHT mehr geändert werden!
Schnittstellen Deklaration wie Klassen jedoch mit leeren Methoden, Eigenschaften, … Public Interface ITier Sub Spielen() End Interface Public Class Hund Implements ITier Public Sub Spielen() Implements ITier.Spielen Console.WriteLine("Hund spielt.") End Sub End Class Public Class Katze Console.WriteLine("Katze spielt.")
Demonstration #3 demo Schnittstellen
Schnittstellen Die Klasse, welche die Schnittstelle implementieren soll, wird von der Schnittstelle „abgeleitet“ Durch das Implementieren einer Schnittstelle ist sichergestellt, dass die Klasse alle Methoden, Eigenschaften, etc. der Schnittstelle implementiert Ansonsten wirft der Compiler einen Fehler Die Schnittstelle darf nach der Veröffentlichung NICHT mehr geändert werden!
Schnittstellen als Parameter Bei Schnittstellen handelt es sich um vollwertige Typen Können auch für die Deklaration einer Variablen oder als Parameter einer Prozedur verwendet werden Module Module1 Sub Main() Dim Hasso As New Hund TierSpielenLassen(Hasso) End Sub Public Sub TierSpielenLassen(ByVal Tier As ITier) Tier.Spielen() End Module Public Interface ITier Sub Spielen() End Interface Public Class Hund Implements ITier ' Implementierung von Hund End Class
Demonstration #4 demo Schnittstellen als Parameter
Schnittstellen vs. Abstrakte Klassen Schnittstellen enthalten ausschließlich Definitionen, abstrakte Basisklassen können einen Mix aus Definitionen und gemeinsamen Funktionscode enthalten Eine Klasse kann mehrere Schnittstellen implementieren aber nur von einer Klasse erben. Eine Schnittstelle kann von beliebig vielen anderen Schnittstellen erben
Agenda Übungsaufgabe Teil 5 Kombinierte Formatierung Schnittstellen Zusammenfassung
Übungsaufgabe Schreiben Sie die zwei Klassen Amateurspieler und Profispieler Beide Klassen sollen ein Interface ISpieler implementieren Property SpielerName Property Position Methode Torschiessen Schreiben Sie eine Methode welche die Namen, Position und geschossenen Tooooore der Spieler ausgibt
Agenda Übungsaufgabe Teil 5 Kombinierte Formatierung Schnittstellen Zusammenfassung
Zusammenfassung Kombinierte Formatierung Interfaces {Index[,Ausrichtung][:Formatzeichenfolge]} Interfaces Vertrag zwischen getrennten Codeteilen Stellen sicher, dass die enthaltenen Methoden, Properties, … in der Klasse, die das Interface implementiert, enthalten sind Die Schnittstelle darf nach der Veröffentlichung NICHT mehr geändert werden!
Nächste Termine 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 Objektorientiertes Programmieren 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 Vererbung in Visual Basic http://msdn2.microsoft.com/de-de/library/5x4yd9d5(VS.80).aspx Schnittstellen in Visual Basic http://msdn2.microsoft.com/de-de/library/28e2e18x(VS.80).aspx
Referenzen & Downloads Formatierung von Typen http://msdn2.microsoft.com/de-de/library/fbxft59x(VS.80).aspx Kombinierte Formatierung http://msdn2.microsoft.com/de-de/library/txafckwd(VS.80).aspx Microsoft Visual Basic 2005 - Das Entwicklerbuch http://www.edv-buchversand.de/mspress/product.asp?cnt=product&id=ms-537&lng=0 MSDN Solve, Antworten für Entwickler http://msdn-solve.de/
Questions and Answers Daniel Walzenbach daniel.walzenbach@microsoft.com http://blogs.msdn.com/walzenbach