Upload
kitra
View
27
Download
1
Embed Size (px)
DESCRIPTION
Visual Basic 2005/2008 OOP in praktijk. André Obelink - MCSD, MVP Web: www.vbcentral.nl - www.obelink.com - www.ineta-europe.org E-mail: andre @ obelink.com. About me. Technical Manager / Lead developer Auteur… - PowerPoint PPT Presentation
Citation preview
Visual Basic Visual Basic 2005/20082005/2008
OOP in praktijkOOP in praktijkAndré Obelink - MCSD, MVPAndré Obelink - MCSD, MVP
Web: www.vbcentral.nl - www.obelink.com - www.ineta-europe.orgWeb: www.vbcentral.nl - www.obelink.com - www.ineta-europe.org E-mail: [email protected]: [email protected]
About meAbout me Technical Manager / Lead developerTechnical Manager / Lead developer Auteur…Auteur…
Artikelen voor het VB Magazine, MSDN Magazine Europe, PC Artikelen voor het VB Magazine, MSDN Magazine Europe, PC Active, Active, Microsoft .NET Magazine en het SDN MagazineMicrosoft .NET Magazine en het SDN Magazine
Boek: Visual Basic 2005 – De basis (Pearson Education – 2006)Boek: Visual Basic 2005 – De basis (Pearson Education – 2006) Boek: Visual Basic Kookboek (Pearson Education – januari 2008)Boek: Visual Basic Kookboek (Pearson Education – januari 2008)
De andere persoon achter VBcentral.nl… ;-)De andere persoon achter VBcentral.nl… ;-) VP Speaker Bureau – INETA EuropeVP Speaker Bureau – INETA Europe Microsoft MVP voor Visual Basic sinds 2006Microsoft MVP voor Visual Basic sinds 2006
Klassen & objectenKlassen & objecten OOP draait om klassen en objectenOOP draait om klassen en objecten
Een Een klasseklasse is de blauwdruk van een is de blauwdruk van een object object stansstans
Een Een objectobject is de instantie van de klasse is de instantie van de klasse koekjekoekje
Public Class Koekje
Private mstrNaam As String = ""
Public Property Naam() As String Get Return mstrNaam End Get Set(ByVal value As String) mstrNaam = value End Set End Property
End Class
KlasseKlasseDim objKletsKop As New KoekjeobjKletsKop.Naam = "Kletskop“
Dim objSpeculaas As New KoekjeobjSpeculaas.Naam = "Speculaas"
Dim objSprits As New KoekjeobjSprits.Naam = "Sprits"
Dim objChocoSprits As New KoekjeobjChocoSprits.Naam = "ChocoSprits"
ObjectenObjecten
Vier pijlers van OOPVier pijlers van OOP Theoretische benadering… niet Theoretische benadering… niet
onbelangrijk..onbelangrijk.. Abstraction - Abstraction - AbstractieAbstractie Encapsulation - Encapsulation - InsluitingInsluiting Inheritance - Inheritance - OverervingOvererving Polymorphism - Polymorphism -
Polymorfisme/veelvormigheidPolymorfisme/veelvormigheid
… … manier van denkenmanier van denken
Waarom wil je OOP?Waarom wil je OOP? Je wordt gedwongen een complex geheel op Je wordt gedwongen een complex geheel op
te delen in ‘op te lossen’ kleine te delen in ‘op te lossen’ kleine deelproblemendeelproblemen
Je kunt je focussen op microproblemen, Je kunt je focussen op microproblemen, verklein kans op problemen op meso- of verklein kans op problemen op meso- of macroniveaumacroniveau
Je schrijft in het algemeen stabielere en Je schrijft in het algemeen stabielere en beter onderhoudbare codebeter onderhoudbare code
Je kunt code makkelijker hergebruikenJe kunt code makkelijker hergebruiken Jij vindt Lego toch ook leuk?Jij vindt Lego toch ook leuk?
DemoDemodansende ballen…dansende ballen…
Klasse BalKlasse Bal Kenmerken / eigenschappenKenmerken / eigenschappen
KleurKleur PositiePositie RichtingRichting SnelheidSnelheid GrootteGrootte
Acties /methodenActies /methoden VerplaatsenVerplaatsen TekenTeken
Abstractie & InsluitingAbstractie & Insluiting AbstractieAbstractie
Applicatie opdelen in logische blokkenApplicatie opdelen in logische blokken Klassen, eigenschappen en methoden Klassen, eigenschappen en methoden
bepalenbepalen
InsluitingInsluiting Alleen benodigde Public Alleen benodigde Public
methoden/eigenschappenmethoden/eigenschappen Verberg de feitelijke implementatieVerberg de feitelijke implementatie Black-boxBlack-box
CodeCodedansende ballen…dansende ballen…
Overerving & Overerving & PolymorfismePolymorfisme
Definieer een basisklasse Definieer een basisklasse PersoonPersoon Maak afgeleide klassen Maak afgeleide klassen LeerlingLeerling, ,
Leerkracht Leerkracht Voeg eventueel eigen eigenschappen Voeg eventueel eigen eigenschappen
toetoe Overschrijf bestaande methoden en Overschrijf bestaande methoden en
eigenschappen, waardoor een eigenschappen, waardoor een LeerlingLeerling anders ‘denkt’ dan een anders ‘denkt’ dan een LeerkrachtLeerkracht (polymorfisme)(polymorfisme)
Demo & CodeDemo & Codeklassen klassen PersoonPersoon, , LeerlingLeerling en en
LeerkrachtLeerkracht
Wat hebben we nu Wat hebben we nu gezien?gezien?
Overerving of inheritance met behulp Overerving of inheritance met behulp van basis- en afgeleide klassenvan basis- en afgeleide klassen
Dwing bepaalde zaken af met behulp Dwing bepaalde zaken af met behulp van:van: Verschillende / overloaded constructorsVerschillende / overloaded constructors Sleutelwoorden als Sleutelwoorden als MustInheritMustInherit, ,
MustOverrideMustOverride, , OverridableOverridable, , OverridesOverrides, …, … Polymorfisme door verschillende Polymorfisme door verschillende
implementaties van de methode ‘Spreek’implementaties van de methode ‘Spreek’
Demo & CodeDemo & CodeKlasse Klasse LandenLanden: Overrides : Overrides
ToString()ToString()
Demo & CodeDemo & Codeerf over erf over TreeNodeTreeNode
Demo & CodeDemo & Codeklasse klasse MensMens: Objecten : Objecten
kopiëren …kopiëren …
Implementeer interfacesImplementeer interfaces Een interface is een beschrijving van de Een interface is een beschrijving van de
publieke eigenschappen en methoden, publieke eigenschappen en methoden, zonder daadwerkelijke implentatiecodezonder daadwerkelijke implentatiecode
Een klasse kan een of meerdere Een klasse kan een of meerdere interfaces implementeren met behulp interfaces implementeren met behulp van het van het sleutelwoord sleutelwoord ImplementsImplements
IClonableIClonable, of , of IPersoonIPersoon, , IDokumentIDokument, …, … ……. IComparable(Of T). IComparable(Of T) of of IComparerIComparer…..…..
Demo & CodeDemo & Codeklasse klasse StudentStudent: Objecten : Objecten
sorteren…sorteren…
Vragen?Vragen? [email protected]@obelink.com www.obelink.comwww.obelink.com