Aan het eind van deze lesbrief wordt uitgelegd wat het nut van OOP is en vind je een aantal oefenopdrachten.



Vergelijkbare documenten
Verder zijn er de nodige websites waarbij voorbeelden van objectgeoriënteerd PHP (of Objec Oriented PHP, OO PHP) te vinden zijn.

Datatypes Een datatype is de sort van van een waarde van een variabele, veel gebruikte datatypes zijn: String, int, Bool, char en double.

Kleine cursus PHP5. Auteur: Raymond Moesker

Mijn eerste ADO.NET applicatie

PHP-OPDRACHT SITE BOUWEN

Een website maken met databasetoegang.

Dieper in Visual Basic.Net

Formulieren en waarden posten naar een view

Open SQL Server Management Studio en log in als Administator. Je ziet dan wat je in figuur 2.1 ziet.

Dynamiek met VO-Script

Programmeren in Java 3

In de tweede regel plaatsen we in het gereserveerde stukje geheugen een getal.

Access voor beginners - hoofdstuk 25

VAN HET PROGRAMMEREN. Inleiding

Cursus Onderwijs en ICT. Programmeren met Visual Basic

Object Oriented Programming

Visual Basic.NET. Visual Basic.NET. M. den Besten 0.3 VB. NET

HvA Instituut voor Interactieve Media ActionScript 3.0

VI. Klassen en objecten

Test Joomla op je PC 1

Opdracht 7a. Applicatiebouw 2014/2015

Informatica. Objectgeörienteerd leren programmeren. Van de theorie met BlueJ tot een spelletje met Greenfoot... Bert Van den Abbeele

Les 15 : updaten van gegevens in de database (deel2).

Connect Social Business. Plan van Aanpak voor mijn stage bij ConnectSB

Gebruiksvriendelijkheid: Gebruiksaanwijzing:

icafe Project Joeri Verdeyen Stefaan De Spiegeleer Ben Naim Tanfous

Koppeling met een database

Omschrijf bij ieder onderdeel van de methode de betekenis ervan. Java kent twee groepen van klassen die een GUI kunnen maken: awt en swing.

Object-oriented programmeren met BlueJ en Visual Studio

Objectgeorïenteerd werken is gebaseerd op de objecten die door het systeem gemanipuleerd worden.

Connect Social Business

Werkgroep 2. First things first, but not necessarily in that order. Dr. Who

Variabelen en statements in ActionScript

MBO ICT Opleidingen. Producten en prijzen Voor kwalificaties en keuzedelen. MBO ICT Opleidingen

Technisch ontwerp. Projectteam 6. Project "Web Essentials" 02 april Versie 2.1.0

LESBRIEF Aan de slag met Schoolwise

Programmeren in C# Interfaces. Hoofdstuk 23

INFITT01 Internettechnologie WEEK 2

Met een LightSwitch applicatie een OData service uit de Windows Azure Marketplace consumeren

Een gelinkte lijst in C#


Handleiding van de Bibliotheek: e-books lezen op je e-reader - versie voor OS X (Mac)

De Kleine WordPress Handleiding

DrICTVoip.dll v 2.1 Informatie en handleiding

et Zend Framework bestaat volledig uit objectgeoriënteerde

Installatie PlanCare Dossier educatief

NHibernate als ORM oplossing

Instaleren van PFS Deze les is geschreven op een pc met Windows 7! Houd daar rekening mee en pas aan waar nodig! ********

Inhoudstafel. UML (Unified Modeling Language)

Producten en prijzen 2016 MBO ICT Opleidingen

Producten en prijzen 2012

UML. From weblog Dennis Snippert

Programmeren in Java 3

Stap 2: informatie op je website / weblog plaatsen

Aan de slag met Twitter

INSTALLATIEHANDLEIDING

Als een PSD selecties bevat, deelt de lijn van het programma zich op met de verschillende antwoorden op het vraagstuk.

Als eerste bedankt voor het aanschaffen van deze PDF waarin ik je handige tips en trucs zal geven over het schrijven van een handleiding.

Connect Social Business. Plan van Aanpak voor mijn stage bij ConnectSB

DRENTHECOLLEGE.NU STUDIEGIDS ICT-LYCEUM Programma van Toetsing en Afsluiting. TE nr1

Presenteer je bedrijf op MindYourBizniz

Handleiding van de Bibliotheek: e-books online lezen op een PC of laptop

SYNTRA-WEST. Cursus OOP. Deel

Modelleren en Programmeren

VAN HET PROGRAMMEREN. Inleiding. Het spiraalmodel. De programmeertaal. vervolgens de berekening van het totale bedrag, incl. BTW:

Handleiding Word Press voor de bewoners Westerkaap 1

Inhoudsopgave. Voorwoord... 5 Voordat je begint... 6 Wat heb je nodig?... 7 Voor ouders, verzorgers en leraren... 8

Technisch Ontwerp W e b s i t e W O S I

Project network. Gebaseerd op paragrafen , uit het boek. We simuleren een sociaal netwerk

Handleiding van de Bibliotheek: e-books lezen op je e-reader - voor OS X (Mac)

In deze appendix wordt bekeken wat er moet gebeuren voordat

Quickstart handleiding

Quick start handleiding versie 1.0

Macro's in OpenOffice.org

Programmeren met databanken volgens het lagenmodel in C#

Handleiding WooCommerce - factuursturen.nl

Objectgeoriënteerd Programmeren: WPO 2a

Les 12 : database koppeling, opmaken van template, webstructuur en afdrukken van gegevens. (deel2).

UBC op Microsoft Windows 64-bits

Bloggen met blogdirect

Handleiding ZKM Online. Versie 2.1

Sick Beard installeren en configureren voor gebruik in combinatie met SABnzbd+...

Chris de Kok TDI 3. Vak: Software Architectuur Datum: Docent: Fons van Kesteren

Simon de schildpad J van Weert 1

Om verder te gaan naar de persoonlijke omgeving wordt de aanmeld module beschikbaar gesteld.

Connect Social Business

Hoe leg ik een FTP-verbinding met de website van school? Hoe maak ik een downloadhyperlink via het CMS?

ANT Installatie demo versie

1 Inleiding in Functioneel Programmeren

Een ASP.NET applicatie opzetten. Beginsituatie:

Vakgroep CW KAHO Sint-Lieven

Uitwerking Aanvullend tentamen Imperatief programmeren Woensdag 24 december 2014, uur

Handleiding. Inschrijven via toernooi.nl

Programmeren: Visual Basic

IMP Uitwerking week 13

Inschrijving met een STUDENTEN PROFIEL. INSCHRIJVING STAP 1 - Persoonsgegevens. INSCHRIJVING STAP 2 Aanbod en opleiding

Installatie shortform Rodin.NET

Transcriptie:

Doel van deze lesbrief Deze lesbrief is bedoeld om je op de hoogte te brengen van de basisbegrippen die gangbaar zijn bij object georiënteerd programmeren (OOP). In deze lesbrief kom je korte codefragmenten tegen. Deze codefragmenten hebben betrekking op de talen PHP en C#.NET. Toch kan je deze lesbrief platformonafhankelijk gebruiken. Het idee van object georiënteerd programmeren is namelijk voor iedere programmeertaal gelijk. Let wel, het gaat hier om een eerste aanzet van OOP. De besproken begrippen vormen de basis van OOP. Later in je opleiding zal het stelsel van begrippen op dit gebied verder worden uitgebreid. Het kan zijn dat dit stelsel van begrippen jou al helemaal duidelijk is. Je kunt dit hoofdstuk dan overslaan of globaal doorlezen. Let op: hetgeen in dit hoofdstuk wordt behandeld, behoort tot de kennisvereisten van de studieroute OO (met de toetsen OO_PHP en OO.NET). Aan het eind van deze lesbrief wordt uitgelegd wat het nut van OOP is en vind je een aantal oefenopdrachten. 1. Basisbegrippen bij object georiënteerd programmeren. Voordat je object georiënteerd gaat programmeren volgt hier eerst een korte uitleg van de begrippen die je daarbij tegenkomt. Object Object georiënteerd programmeren is programmeren met objecten. Objecten kom je in de wereld om je heen overal tegen, zoals De stoel waarop je zit. Het vervoermiddel waarmee je reist. Het huis waarin je woont. Je kunt zo nog wel even doorgaan. Kortom: de wereld om je heen bestaat uit objecten. Objecten hoeven niet altijd stoffelijk te zijn, zoals de drie voorbeelden hiervoor. Zo kun je de volgende zaken ook als object zien: Jouw bankrekening. De reservering van een hotel die ik heb gemaakt. Mijn domein pieterbrouwer.eu. Bij het ontwikkelen van software en websites wordt geprobeerd de werkelijkheid waarvoor de software wordt geschreven zoveel mogelijk te benaderen. Dit is dan ook meteen het doel van object georiënteerd programmeren. Dit doel wordt gerealiseerd door in de programmeercode objecten te gebruiken. Een voorbeeld. Als je een webwinkel programmeert, dan kom je in de programmeercode objecten tegen met de naam klant, account, bestelling, product, enz. 1

In het vorige voorbeeld kunnen de genoemde objecten geen stoffelijke objecten zijn. In dit geval spreken we van softwareobjecten. Zo'n softwareobject is een stuk programmeercode waarin het object, zoals het in de werkelijkheid is, wordt beschreven. Dit laatste is nogal abstract en ontastbaar. Hoe dit alles in z'n werk gaat, leer je in de lesbrieven OO_PHP en OO.NET. Voorbeelden van softwareobjecten waarmee je ongetwijfeld weleens mee hebt gewerkt zijn: Een specifieke snelkoppeling op je bureaublad. Een tekstvak waarin je een wachtwoord kunt invullen. De prullenbak (als onderdeel van je besturingssysteem). Een formulier, een knop of een listbox bij het ontwikkelen van een.net applicatie. Deze softwareobjecten zijn voorbeelden van objecten waarvan de programmeercode al voor jou gemaakt is. Het zijn onderdelen van een besturingssysteem, een programma of een website. Je gebruikt die objecten. Met de programmeercode achter deze objecten doe je niets of heb je niets te maken. Bij OOP daarentegen, kun je de programmeercode van de objecten wel zelf maken. Klasse of class Een object is iets specifieks. Je ziet dit aan de manier van formuleren in de vorige paragraaf. Hier werd gesproken van jouw bankrekening en niet van een bankrekening. Een object is een verschijningsvorm van een algemeen begrip. Hieronder zie je nog een paar van dit soort voorbeelden. Algemeen begrip Verschijningsvorm of object Mens Jijzelf Auto Auto met kenteken 35-HPG-9 Reservering Reservering met reserveringnummer B112490.6 Land Portugal Leraar P. Brouwer Zo'n algemeen begrip wordt een klasse of class genoemd. Je kunt klasse ook als soort lezen: jijzelf behoort tot de soort Mens. Voor softwareobjecten geldt dat een klasse de blauwdruk of het ontwerp van een object is. Eigenlijk staat de programmeercode van het object niet in het object zelf, maar in een klasse. Een object is eigenlijk niets anders dan een verschijningsvorm, die gebruik maakt van de programmeercode van de bijbehorende klasse. Dit laatste wordt in figuur 1 duidelijk gemaakt voor het de klasse Snelkoppeling. 2

De klasse Snelkoppeling Start Adobe Reader Hierin staat alle code om een snelkoppeling te laten functioneren Objecten (specifieke verschijningsvormen van de klasse Snelkoppeling). Figuur 1 Toelichting: De snelkoppeling Adobe Reader 9 is een softwareobject. Dit softwareobject heeft als klasse Snelkoppeling, waarin de programmeercode staat om de snelkoppeling te laten functioneren. Dubbelklik je nu op deze snelkoppeling, dan wordt Acrobat Reader 9 gestart. Het stukje programmacode dat daarvoor verantwoordelijk is is gedefinieerd in de klasse Snelkoppeling. Uit het vorige voorbeeld kun je het volgende concluderen: Als je wilt programmeren met zelfgemaakte objecten, dan moet je eerst een klasse programmeren met daarin de programmeercode die het object kan laten functioneren. De programmeercode in een klasse bestaat uit de volgende onderdelen: Attributen of velden (Engels: attributes or fields). Code verpakt in methodes (functies worden bij OOP methodes genoemd). Attributen bepalen de eigenschappen van een object. Methodes bepalen het gedrag van een object. Een voorbeeld: De klasse Snelkoppeling heeft een attribuut doel en een methode verwijder(). Het object Adobe Reader 9 heeft dit attribuut en deze methode ook. Het attribuut doel is te vergelijken met een variabele die een bepaalde waarde heeft. Zo kan het bijvoorbeeld zijn dat de waarde van het attribuut doel van het object de waarde: "C:\Program Files (x86)\adobe\reader 9.0\Reader\AcroRd32.exe" heeft. Dit attribuut kun je instellen door de eigenschappen van het object te veranderen. Het attribuut doel bepaalt dus de eigenschap: "welk programma kan worden gestart door de snelkoppeling". De methode verwijder() is een functionaliteit om het object te verwijderen. Een methode voert dus een actie uit, het doet iets. De programmeercode hiervoor is gedefinieerd in de klasse Snelkoppeling. Deze methode kan worden aangeroepen door het object, met het gewenste resultaat. De methode verwijder() bepaalt dus het gedrag "verwijder een snelkoppeling". 3

2. De opbouw van een klasse Zoals al eerder is gezegd: als je wilt programmeren met zelfgemaakte objecten, dan moet je eerst een klasse programmeren met daarin de programmeercode die het object kan laten functioneren. In deze paragraaf gaan we in op de structuur van een klasse (dus hoe je een klasse programmeert). Een klasse in C#.NET De programmeercode voor een klasse in C#.NET ziet er als volgt uit: Class ClsSnelkoppeling //Eerst de attributen definiëren private string doel; private string beginnen_in; //Dan de constructor definieren public ClsSnelcoppeling(string pdoel, string pbeginnen_in) //Programmeercode voor de constructor //Daarna de overige methodes definiëren public void Verwijder() //Programmeercode voor de methode Verwijder() public void WijzigDoel(string pdoel) //Programmeercode voor de methode WijzigDoel() 4

In de klasse kom je een bijzondere methode tegen, namelijk de constructor. De constructor heeft dezelfde naam als de methode zelf. Met deze methode kun je bijvoorbeeld de attributen een beginwaarde geven als er een object wordt gemaakt van die klasse. We zeggen wel: met de constructor initialiseren we een object. In C#.NET is het mogelijk om met meer dan 1 constructor te werken. In de klasse kom je de woorden public en private tegen. Hierover leer je meer in de volgende lesbrieven. Een klasse in PHP De programmeercode voor een klasse in PHP (versie 5.0 en hoger) ziet er als volgt uit: Class ClsSnelkoppeling //Eerst de attributen definiëren private $doel; private $beginnen_in; //Dan de constructor definieren public function constuct($pdoel, $pbeginnen_in) //Programmeercode voor de constructor //Daarna de overige methodes definiëren public function Verwijder() //Programmeercode voor de methode Verwijder() public function WijzigDoel($pDoel) //Programmeercode voor de methode WijzigDoel() 5

Je ziet dat het definiëren van een klasse in C#.NET en PHP niet veel van elkaar verschilt. Ook bij een klasse in PHP is er een constructor die hetzelfde doel heeft als bij C#.NET. Deze constructor heeft echter een aparte naam, namelijk counstruct (let op: twee maal underscore en dan construct). 3. Programmeren met objecten Nu je een klasse hebt, is het mogelijk van die klasse een object te declareren. Met behulp van die objecten kun je attributen en methoden aanroepen. Dit declareren van een object gaat als volgt (bij het voorbeeld van de snelkoppeling): In C#.NET In PHP ClsSnelkoppeling objsnelkoppeling = new ClsSnelkoppeling( // parameterwaarden); $objsnelkoppeling = new ClsSnelkoppeling( // parameterwaarden); De parameterwaarden moeten overeenstemmen met de parameters van de constructor (in ons voorbeeld: pdoel en pbeginnen_in. Dus kan het declareren van een object als volgt: In C#.NET In PHP ClsSnelkoppeling objsnelkoppeling = new ClsSnelkoppeling("C:\Program Files (x86)\adobe\reader 9.0\Reader "," AcroRd32.exe"); $objsnelkoppeling = new ClsSnelkoppeling(("C:\Program Files (x86)\adobe\reader 9.0\Reader "," AcroRd32.exe"); Het declareren van een object wordt meestal anders genoemd, namelijk: het instantiëren van een klasse. Deze nogal ingewikkelde benaming komt voort uit het begrip instantie, wat weer verschijningsvorm betekent. Dus: Een instantie van een klasse is een verschijningsvorm van een klasse (een object dus). Meestal wordt deze formulering gebruikt als je de naam van de klasse en het object in 1 zin noemt, dus: objsnelkoppeling is een instantie van de klasse ClsSnelkoppeling. Wanneer je alleen over het object spreekt, dan zeg je: het object objsnelkoppeling (dus niet de instantie objsnelkoppeling). Instantiëren is dus het maken van een instantie van een klasse. Ik geef toe: dit alles maakt het voorlopig nog niet echt gemakkelijk voor je. Toch zullen na verloop van tijd, en na de nodige oefening, de begrippen en het taalgebruik je steeds vertrouwder in de oren gaan klinken. 6

Als je een klasse hebt geïnstantieerd, dan kun je methodes aanroepen. Dit is niet moeilijk meer. Het gaat als volgt: In C#.NET objsnelkoppeling.verwijder(); In PHP $objsnelkoppeling->verwijder(); Met behulp van deze coderegels wordt de programmeercode voor de methode Verwijder() geactiveerd. Deze methode was gedefinieerd in de klasse ClsSnelkoppeling. 4. Waarom OOP Door de jaren heen zij applicaties steeds complexer geworden. Daarom moet voor het ontwikkelen van applicaties een methodiek gebruikt worden waarbij: code overzichtelijk blijft, de structuur van een programma op een eenvoudige wijze kan worden gepresenteerd en reeds eerder gebruikte code hergebruikt kan worden (na eventueel een kleine aanpassing). De manier van programmeren zoals die voor het OO-tijdperk werd toegepast voldoet niet aan deze eisen. De code van grote programma's werden op deze wijze een onoverzichtelijke brei van functies, regels, loops, if-statements en programmaregels (de zogenaamde spagetticode). Aanpassen van dergelijke programma's was onbegonnen werk. Opnieuw programmeren was de enige optie. Met groeien van de complexiteit en de omvang van een programma werd dit een dure grap. OOP is de oplossing voor dit soort problemen. Met OOP wordt het programma ingedeeld in klassen, wat de ontwikkelaar ertoe dwingt te programmeren volgens een bepaalde structuur. Deze structuur kan op een eenvoudige wijze worden gepresenteerd (in diagrammen). Verder kan reeds bestaande code eenvoudig worden hergebruikt binnen nieuwe klassen (je hoeft dus niet opnieuw het wiel uit te vinden). Je kunt zelfs zo ver gaan dat je klassen onderbrengt in bibliotheken waarbij onderlinge relaties tussen deze klassen bestaan. Dergelijke bibliotheken worden frameworks genoemd. Voorbeelden van dergelijke frameworks zijn.net, ZendFramework en CodeIgnitor. Veel bedrijven (vooral PHP ontwikkelbedrijven) maken hun eigen framework, waardoor er weer een wildgroei ontstaat van PHP-frameworks. Dat laatste is een beetje jammer. Gedurende de opleiding Applicatieontwikkelaar zul je met de volgende framworks gaan werken:.net en ZendFramework (het meest gebruikte PHP-framework). Om deze frameworks efficiënt te gebruiken moet je eerst de basis van OOP goed onder de knie krijgen. 7

5. Oefenopdrachten Omdat de eerstvolgende lesbrief over OOP met PHP gaat, kun je de volgende opdrachten het beste in PHP maken. Je kunt de oefenopdrachten zelf proberen te maken. Toch zal (met name bij opdracht 1) een klassikale toelichting op zijn plaats zijn. Opdracht 1 Deze opdracht is een onderdeel van een webshop. In deze webshop bestaat de klasse ClsBestelling. Deze klasse heeft de volgende attributen: bestelnummer klantnummer datum En de volgende methoden: De constructor met de parameters pklantnummer, pbestelnummer en pdatum De methode WijzigBestelling() met de parameters pklantnummer en pdatum De methode ToonBestelling() zonder parameters. Deze methode returnt een array met de attribuutwaarden van het object. Gebruik deze klasse in een wijzigingsformulier, waarin eerst de huidige attribuutwaarden van het object te zien zijn en na wijziging (via twee textboxen) de nieuwe attribuutwaarden van het object te zien zijn. Opdracht 2 Deze opdracht is een onderdeel van weblog. In deze weblog bestaat de klasse ClsBericht. Deze klasse heeft de volgende attributen: BerichtID BerichtEigenaar BerichtDatum BerichtText En de volgende methoden: De constructor. In deze methode wordt verbinding met een database gemaakt. De methode MaakBericht(). Met deze methode kun je de attributen van de klasse een waarde geven. SlaBerichtOp(). Hiermee kun je het bericht opslaan in een database. ToonBerichten(). Hiermee toon je de laatste 10 berichten. 8

Maak bij deze applicatie een MySQL database met een tabel berichten. Deze tabel heeft de velden: berichtid, berichteigenaar, berichtdatum en berichttekst. Maak een applicatie waarmee je een bericht kunt toevoegen en daarna opslaan. Nadat het bericht is opgeslagen krijg je de laatste 10 berichten zien. Gebruik hier de klasse ClsBericht en de daarbij gemaakte methodes. 9