180 likes | 295 Views
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…
E N D
Visual Basic 2005/2008OOP 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 / Leaddeveloper • Auteur… • Artikelen voor het VB Magazine, MSDN Magazine Europe, PC Active, Microsoft .NET Magazine en het SDN Magazine • Boek: Visual Basic 2005 – De basis (Pearson Education – 2006) • Boek: Visual Basic Kookboek (Pearson Education – januari 2008) • De andere persoon achter VBcentral.nl… ;-) • VP Speaker Bureau – INETA Europe • Microsoft MVP voor Visual Basic sinds 2006
Klassen & objecten Klasse Objecten 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 Dim objKletsKop As New Koekje objKletsKop.Naam = "Kletskop“ Dim objSpeculaas As New Koekje objSpeculaas.Naam = "Speculaas" Dim objSprits As New Koekje objSprits.Naam = "Sprits" Dim objChocoSprits As New Koekje objChocoSprits.Naam = "ChocoSprits" • OOP draaitomklassen en objecten • Eenklasse is de blauwdruk van een object stans • Eenobject is de instantie van de klasse koekje
Vier pijlers van OOP • Theoretische benadering… niet onbelangrijk.. • Abstraction - Abstractie • Encapsulation - Insluiting • Inheritance - Overerving • Polymorphism - Polymorfisme/veelvormigheid • … manier van denken
Waarom wil je OOP? Je wordt gedwongen een complex geheel op te delen in ‘op te lossen’ kleine deelproblemen Je kunt je focussen op microproblemen, verklein kans op problemen op meso- of macroniveau Je schrijft in het algemeen stabielere en beter onderhoudbare code Je kunt code makkelijker hergebruiken Jij vindt Lego toch ook leuk?
Demo dansende ballen…
Klasse Bal • Kenmerken / eigenschappen • Kleur • Positie • Richting • Snelheid • Grootte • Acties /methoden • Verplaatsen • Teken
Abstractie & Insluiting • Abstractie • Applicatieopdelen in logischeblokken • Klassen, eigenschappen en methodenbepalen • Insluiting • Alleenbenodigde Public methoden/eigenschappen • Verberg de feitelijkeimplementatie • Black-box
Code dansende ballen…
Overerving & Polymorfisme Definieer een basisklasse Persoon Maak afgeleide klassen Leerling, Leerkracht Voeg eventueel eigen eigenschappen toe Overschrijf bestaande methoden en eigenschappen, waardoor een Leerling anders ‘denkt’ dan een Leerkracht (polymorfisme)
Demo & Code klassen Persoon, Leerling en Leerkracht
Wat hebben we nu gezien? • Overerving of inheritance met behulp van basis- en afgeleide klassen • Dwing bepaalde zaken af met behulp van: • Verschillende / overloaded constructors • Sleutelwoorden als MustInherit, MustOverride, Overridable, Overrides, … • Polymorfisme door verschillende implementaties van de methode ‘Spreek’
Demo & Code Klasse Landen: OverridesToString()
Demo & Code erf over TreeNode
Demo & Code klasse Mens: Objecten kopiëren …
Implementeer interfaces Een interface is een beschrijving van de publieke eigenschappen en methoden, zonder daadwerkelijke implentatiecode Een klasse kan een of meerdere interfaces implementeren met behulp van het sleutelwoord Implements IClonable, of IPersoon, IDokument, … …. IComparable(Of T) of IComparer…..
Demo & Code klasse Student: Objecten sorteren…
Vragen? andre@obelink.com www.obelink.com