Interfaces Hoofdstuk 23 Hoofdstuk 23.

Slides:



Advertisements
Verwante presentaties
KINN 2010 •OOP •O Object •O Georiënteerd •P Programmeren.
Advertisements

Zelf objecten maken in VBA Ynte Jan Kuindersma, BIRD Automation Nationale Officedag 2009 EDE, 14 Oktober 2009.
Hoofdstuk 8: Recursie.
Gegevensstructuren: list boxen en lijsten
Van domeinklasse tot implementatie
Objecten Hoofdstuk 6 Hoofdstuk 6 Hoofdstuk 6 1.
VBA en VBS Een introductie.
Hogeschool HZ Zeeland 19 augustus 2003augustus 2003 Data Structuren & Algoritmen Week 5.
Hoofdstuk 6: Controle structuren
Hoofdstuk 2 Hallo, C# !.
Les 2 Basisbouwstenen (deel 1)
‘Inleiding programmeren in Java’ Derde college Maandag 22 januari 2001 drs. F. de Vries.
1 Voorwaarden hergebruik Modulair ontwerp Low coupling High cohesion.
Frank Stalpers en Ad Baars
Inleidend probleem Data structuur (hiërarchie van classes)
Exceptions Hoofdstuk 17 Hoofdstuk 17.
Klassen schrijven Hoofdstuk 10. Visual Basic.NET voor studenten2 In dit hoofdstuk … Hoe schrijf je een klasse Constructormethodes Public methoden Variabelen.
Herhaling: For, While en Do
Overerving Hoofdstuk 11 Hoofdstuk 11.
Methoden en argumenten
Consoleprogramma’s Hoofdstuk 19. Visual Basic.NET voor studenten2 In dit hoofdstuk … Hoe consoletoepassingen maken In- en uitvoer bij consoleprogramma’s.
Bestanden Hoofdstuk 18 Hoofdstuk 18.
Hoorcollege 7 Collections, arrays. Programma ‘Snowflakes’ Sneeuwvlok object.
Visual Basic.
Visual Basic.NETPag.1 Hoofdstuk 10 - Grafische User Interface : Deel 2 Inleiding Menus ListBoxes ComboBoxes Multiple Document Interface (MDI) Windows.
Herhaling Java-programmatie en geautomatiseerd testen (vervolg)
Deel XIV Eerste echte e-commerce applicatie Implementatie (vervolg) 1 Internetapplicaties Deel 15: Herhaling Java-programmatie en geautomatiseerd testen.
Visual Basic 2005/2008 OOP in praktijk André Obelink - MCSD, MVP Web: Web: -
KINN 2010 OOP O Object O Georiënteerd P Programmeren.
Testen Hoofdstuk 22. Visual Basic.NET voor studenten2 Inleiding Testen hebben als doel het ontdekken van bugs Het is echter onmogelijk om met testen te.
Visual Basic.NET voor studenten De VB- ontwikkelomgeving Hoofdstuk 2.
Les 6 Menu Programmeren met Visual Basic Karl Moens.
Sparkle een bewijssysteem voor Clean Maarten de Mol Katholieke Universiteit Nijmegen 11 januari 2002.
Programmeerstijl Hoofdstuk 21. Visual Basic.NET voor studenten2 Inleiding Belang van een goede programmeerstijl:  Programma’s worden door meerdere mensen.
Debuggen Hoofdstuk 9 Hoofdstuk 9.
Les 7 Multiple Document Interface Programmeren met Visual Basic Karl Moens.
Arrays Hoofdstuk 14 Hoofdstuk 14.
Objectgeoriënteerd Ontwerp
Introductie tot GoF patterns in Java
Variabelen en berekeningen
Les 3 Basisbouwstenen (deel 2) Programmeren met Visual Basic Karl Moens.
Hoofdstuk 6 – Objectgeoriënteerd Programmeren: Overerving
Datacommunicatie en netwerken
Hoofdstuk 11.3 Algoritmen: Zoeken in een netwerk.
Tweedimensionale arrays
Encapsulatie: Every man is an island upon himself.
Spreadsheets. Testen. Met spreadsheets.. |  Spreadsheet, het meest gebruikte (test) tool in de wereld …  Aan de slag: Spreadsheet PRA  Risico’s en.
Bewerkingen met Strings
Polymorfie Hoofdstuk 24. Visual Basic.NET voor studenten2 Inleiding Polymorfie zorgt ervoor dat een gegeven object verschillende “vormen” kan aannemen.
Polymorphisme en Interfaces: inleiding
Java Objectgeoriënteerd Programmeren in Java met BlueJ
Java Objectgeoriënteerd Programmeren in Java met BlueJ Hoofdstuk 7 Polymorfie en overerving © 2014, Gertjan Laan, versie 2.
Java Objectgeoriënteerd Programmeren in Java met BlueJ Hoofdstuk 8: Gebruikersinterface © 2014, Gertjan Laan, versie 2.
 C++ heeft een inheritance mechanisme  Manier om functionaliteit te ‘erfen’ van een parrent class ◦ Polymorphisme ◦ Zoals we het ook in C# kennen.
GEGEVENSSTRUCTUREN IN.NET. Inleiding  Enumerated type  Structure  Collecties  Typed collections  Untyped collections.
De definitie van een object. Een object is een verzameling van eigenschappen en bewerkingen. Veel voorkomende objecten zijn: D (display) Gui (user interface)
Bespreking testpracticum.  Javaconventies! ◦ KlasseNamen beginnen met Hoofdletter ◦ objectNamen/methodeNamen met kleine letter  Aanspreken GUI ◦ Zie.
Gameprogrammeren: Lists en interfaces
Gameprogrammeren: Overerving
Gameprogrammeren: Methoden
Arjan Egges & Paul Bergervoet
Lectora als ontwikkeltool voor interactieve multimedia programma’s
Gameprogrammeren: Abstracte klassen
Gameprogrammeren: Interfaces
Gameprogrammeren: Klassen en objecten
‘Inleiding objectgeoriënteerd programmeren met PHP’ ‘Inleiding’
Software Development fundamentals
Java Masterclass Sar Maroof.
Software Development fundamentals
Software Development fundamentals
Transcript van de presentatie:

Interfaces Hoofdstuk 23 Hoofdstuk 23

Visual Basic .NET voor studenten In dit hoofdstuk … Interfaces gebruiken voor de structuur van een programma Onderlinge aansluiting Interfaces versus abstracte klassen Visual Basic .NET voor studenten

Visual Basic .NET voor studenten Inleiding Een interface beschrijft de uiterlijke verschijningsvorm van een klasse Iemand enig idee wat dit is? Niet te verwarren met grafische user interface Doel: Ondersteunen van het ontwerp Bevorderen van onderlinge aansluiting (eng: cohesion) Het concept interface bestaat eveneens in Java en C# Visual Basic .NET voor studenten Hoofdstuk 23

Interfaces voor ontwerp Public Interface BalloonInterface Sub ChangeSize(ByVal newDiameter As Integer) Property XCoord() As Integer Sub Display(ByVal drawArea As Graphics) End Interface Geen Class sleutelwoord Geen access modifiers bij methoden en properties Dit is puur een beschrijving van diensten: uiterlijke verschijningsvorm van een klasse Het bevat geen implementatie! Visual Basic .NET voor studenten

Interfaces voor ontwerp Public Class Balloon Implements BalloonInterface Private diameter, x, y As Integer Public Sub ChangeSize(ByVal newDiameter As Integer) _ Implements BalloonInterface.ChangeSize ... End Sub Public Sub Display(ByVal drawArea As Graphics) _ Implements BalloonInterface.Display Public Property XCoord() As Integer _ Implements BalloonInterface.XCoord ' implementatie End Property End Class Een klasse kan één of meerdere interfaces implementeren Elke implementerende methode moet expliciet de interface methode aangeven De klasse is verplicht om alle methodes en properties uit de interface te implementeren Visual Basic .NET voor studenten

Interfaces voor ontwerp Interfaces kunnen ook overerven van andere interfaces Public Interface ColoredBalloonInterface Inherits BalloonInterface Property MyColor() As Color End Interface Visual Basic .NET voor studenten

Interfaces voor ontwerp Interfaces worden vaak eerst uitgeschreven aan de hand van een analyse Vervolgens worden de interfaces verdeeld onder de programmeurs en geïmplementeerd Voorbeeld: Stel Jan moet interface BalloonInterface implementeren en Mieke moet GameInterface implementeren. Bovendien heeft Mieke de implementatie van BalloonInterface nodig. Omdat je werkt met interfaces hoeft Mieke niet te wachten en kan ze onmiddellijk starten met de implementatie van GameInterface, eventueel gebruik makend van een “Mock” implementatie van BalloonInterface. Een “Mock” implementatie is een zeer eenvoudige implementatie die weinig of geen functionaliteit bevat, maar louter als bedoeling heeft testen of verdere implementaties te bewerkstelligen. Visual Basic .NET voor studenten

Onderlinge aansluiting Het afspreken van standaarden zorgt ervoor dat onderlinge uitwisselbaarheid verbetert, bijvoorbeeld: Stopcontacten Audio- en videoaansluitingen DVD standaarden … Het concept interface brengt deze voordelen naar de softwarewereld Visual Basic .NET voor studenten

Visual Basic .NET voor studenten Voorbeeld Public Interface Displayable Sub Display(ByVal drawArea as Graphics) End Interface Alle klassen die moeten getekend kunnen worden moeten deze interface implementeren Public Class Square Implements Displayable Private x, y, size As Integer Public Sub Display(ByVal drawArea as Graphics) _ Implements Displayable.Display ... End Sub End Class Visual Basic .NET voor studenten

Visual Basic .NET voor studenten Voorbeeld Het grote voordeel is dat het gedeelte van het programma dat vormen moet tekenen kan gebruik maken van polymorfie (en dus enkel op de hoogte moet zijn van de interface) Public Class DrawingProgram Private shapes as ArrayList ... Public Sub UpdateScreen() Dim index As Integer = 0 Dim shape As Displayable While index < shapes.Count shape = CType(shapes.Item(index), Displayable) shape.Display(myArea) index = index + 1 End While End Sub End Class Visual Basic .NET voor studenten

Visual Basic .NET voor studenten Voorbeeld Public Class DrawingProgram Private shapes as ArrayList ... Public Sub UpdateScreen() Dim shape As Displayable For Each shape In shapes shape.Display(myArea) Next End Sub End Class Visual Basic .NET voor studenten

Toepassing van interfaces: IList Een ListBox control heeft achter de schermen een klasse die de items beheert Deze klasse is een implementatie van een interface IList Visual Basic .NET voor studenten

Toepassing van interfaces: IList Public Interface IList Inherits ICollection, IEnumerable ReadOnly Property IsFixedSize As Boolean ReadOnly Property IsReadOnly As Boolean Property Item(index As Integer) As Object Function Add(value As Object) As Integer Sub Clear() Function Contains(value As Object) As Boolean Function IndexOf(value As Object) As Integer Sub Insert(index As Integer, _ value As Object) Sub Remove(value As Object) Sub RemoveAt(index As Integer) End Interface Visual Basic .NET voor studenten

Verschil met abstracte klassen Een abstracte klasse kan voor sommige methodes een implementatie voorzien, een interface kan dit nooit Een klasse kan meerdere interfaces implementeren, maar slechts van één (abstracte) klasse overerven Om over te erven hoeft de parent klasse niet abstract te zijn! Een interface zorgt al tijdens compilatie voor controle, bij een abstracte klasse wordt er pas tijdens executie gekoppeld met een concrete methode/property Een interface alleen wil nog niet zeggen dat deze zal gebruikt worden voor overerving Visual Basic .NET voor studenten