1 Objectgeoriënteerd programmeren met Java

Maat: px
Weergave met pagina beginnen:

Download "1 Objectgeoriënteerd programmeren met Java"

Transcriptie

1 6 ENIGMA Informatieboek 1 Objectgeoriënteerd programmeren met Java 1 OBJECTGEORIËNTEERD PROGRAMMEREN Moderne software is complex en het ontwikkelen ervan is een tijdrovende bezigheid. Niet voor niets worden releases van nieuwe software vaak maanden uitgesteld om de laatste fouten er uit te halen. Het schrijven van dergelijke computerprogramma s wordt niet door één programmeur in een paar dagen gedaan, maar is het werk van een team programmeurs die daar soms een paar jaar mee bezig zijn. De taken moeten verdeeld worden en daarom is het wenselijk het programma in min of meer los van elkaar te ontwikkelen delen te kunnen schrijven. Ook kan er gebruik gemaakt worden van bouwstenen, zodat de programmeur niet ieder programmaonderdeel van de grond af hoeft te ontwikkelen. Om bijvoorbeeld een knop te programmeren kan hij een bouwsteen voor een standaardknop gebruiken. Die hoeft dan alleen maar aangepast te worden om de specifieke taak binnen het programma uit te voeren. Uit het bovenstaande volgt dat het belangrijk is dat een computerprogramma een duidelijke structuur heeft. Daarom zijn er in de loop van de tijd verschillende methoden bedacht om een computerprogramma te structureren. Je spreekt in dit verband van een programmeerparadigma. In deze paragraaf ga je in op het paradigma, waarop Java is gebaseerd: het objectgeoriënteerde paradigma. opdracht OBJECTEN Veel programma s blijken te gaan over objecten in de reële wereld. Zo werkt bijvoorbeeld een tekstverwerker met documenten en werkt de software van een thermostaat met een sensor en een actuator. Een objectgeoriënteerd programma werkt met objecten. In het algemeen kun je alles wat je in de werkelijkheid als een betekenisvolle eenheid wilt onderscheiden een object noemen. Zo kan een stoel, een tafel, een bank, een lamp een object zijn, maar ook een rekening, een school, een klas. Objecten hebben bepaalde eigenschappen en kunnen bewerkingen ondergaan. Zo heeft elke stoel een bepaalde kleur en een bepaalde vorm (eigenschappen). Je kunt de stoel verplaatsen of je kunt plaats nemen op de stoel (bewerkingen ondergaan). De stoelen zijn verschillend, maar hebben een aantal gemeenschappelijke kenmerken waardoor het stoelen zijn. Een stoel heeft een aantal poten (meestal vier), een zitting en een rugleuning. Deze elementen zijn ook als objecten te beschouwen. Objecten kunnen opgebouwd zijn uit andere objecten. In Java heb je al kennis gemaakt met objecten. Een voorbeeld van een object is een OKknop om de invoer van gegevens te bevestigen. Die knop heeft bepaalde eigenschappen zoals de grootte, de kleur en de tekst. Ook kan de knop een aantal bewerkingen ondergaan: de kleur kan veranderd worden, de knop kan onzichtbaar of zichtbaar worden gemaakt en de plaats op het scherm kan veranderd worden.

2 Hoofdstuk 1 Objectgeoriënteerd programmeren met Java 7 Het applet is ook een object dat weer bestaat uit een aantal objecten, zoals knoppen, tekstvelden, labels etc. Het begrip object wordt in Java ruim geïnterpreteerd. Alles kan een object zijn, als het maar doelmatig is voor de structuur. opdracht KLASSEN Wanneer je een nieuwe stoel wilt maken dan moet deze stoel een aantal eigenschappen hebben (poten, een zitting, een leuning) en een aantal bewerkingen kunnen ondergaan (bijvoorbeeld plaats nemen op) die kenmerkend zijn voor stoelen. Die kenmerken worden vastgelegd in een klasse Stoel. De klasse is het model waarnaar alles gemaakt wordt. We zouden een stoel kunnen maken aan de hand van de onderstaande klassenbeschrijving: Klasse Stoel poten: aantal zitting: kleur leuning: kleur plaats nemen op (persoon) verplaats (positie) eigenschappen bewerkingen De nieuwe stoel die gemaakt wordt op grond van de klasse Stoel heet een instantie van Stoel. Zo is een keukenstoel een instantie van de klasse Stoel, maar een keukentafel niet. opdracht 4-5 Wanneer je een programma schrijft in Java dan beschrijf je de verschillende klassen die in het programma nodig zijn. Een klasse is in feite een verzameling objecten. Daarbij heeft een klasse een naam, een aantal eigenschappen (in Java: velden of attributen) en een aantal bewerkingen (in Java: methoden). Gelukkig hoef je niet alle klassen zelf te schrijven, want er is een bibliotheek van standaard klassen: de API (Application Programming Interface). De API is onderverdeeld in packages. Ieder package bevat een aantal bij elkaar horende klassen. Wij zullen met name gebruik maken van de packages java.awt en java.lang. In het verwerkingsboek vind je een overzicht van de meest gebruikte klassen in deze methode. opdracht 6 Wanneer alle benodigde klassen gereed zijn, is de programmacode klaar. Er moet een methode zijn met een gereserveerde naam, die als eerste wordt aangeroepen, wanneer een programma wordt opgestart. Bij een applet is dat de methode init. Alle andere methoden worden uiteindelijk vanuit deze startmethode aangeroepen.

3 8 ENIGMA Informatieboek 1.3 EEN VOORBEELD: DE KLASSE DOBBELSTEEN Om ervaring op te doen met het ontwerpen en schrijven van een klasse ga je een eenvoudig dobbelspel programmeren. In dit spel mag een speler drie keer gooien met maximaal drie dobbelstenen. Hij kan besluiten om een of meerdere stenen te laten liggen. Het doel van het spel is om na drie worpen een zo hoog mogelijke score te behalen. De interface van het spel staat hiernaast afgebeeld OBJECTEN Welke objecten zijn er te onderscheiden in dit spel? Wanneer je naar de interface kijkt, zie je twee knoppen: Start Spel en Dobbel. Er zijn drie tekstvelden die het resultaat van de worp laten zien en een vierde tekstveld dat de totale score weergeeft. Tenslotte zijn er nog drie selectievakjes. Door een selectievakje aan te vinken geeft de speler aan dat hij deze dobbelsteen laat liggen. Deze objecten zijn instanties van respectievelijke de klassen Button, Textfield en Checkbox. Behalve de objecten die je op de interface ziet, zijn er nog drie objecten: de dobbelstenen waarmee gegooid moet worden. Java kent geen standaardklasse Dobbelsteen. Die zul je zelf moeten ontwerpen DEFINITIE VAN DE KLASSE In Java is de basisvorm van een klassendefinitie : toegang class Naam { body Het woord class is in Java een gereserveerd woord en duidt het begin van de definitie van een klasse aan. Daarachter staat de naam van de klasse. Het is in Java gebruikelijk om de naam van een klasse altijd met een hoofdletter te beginnen. Voor de class staat een woord dat de toegang tot de klasse specificeert. Wij komen hier later in deze paragraaf op terug. Tussen toegang en class staan nog vaak woorden als static, abstract of final. Deze woorden geven de klasse een speciale betekenis, die we hier verder niet zullen bespreken. Ook tussen de naam en de linkeraccolade kunnen nog extra aanduidingen voorkomen. In de body staan de definities van de velden, de constructor en de methoden. De velden bevatten de eigenschappen van de objecten in de klasse. De methoden definiëren de bewerkingen die op de objecten kunnen worden toegepast. De constructor is een speciale methode, die de naam van de klasse zelf heeft. In de constructor is vastgelegd, wat er moet gebeuren bij de constructie van een nieuwe instantie van de klasse.

4 Hoofdstuk 1 Objectgeoriënteerd programmeren met Java IMPLEMENTATIE VAN DE KLASSE Een implementatie van de klasse Dobbelsteen zou er als volgt uit kunnen zien: public class Dobbelsteen { //velden private int worp; //constructor public Dobbelsteen() { //methoden public void dobbel() { double randomgetal = Math.random(); worp = (int)(6*randomgetal)+1; public int getworp() { return worp; opdracht 7-8 Als eerste wordt in de klasse vastgelegd welke gegevens beheerd zullen worden. De klasse Dobbelsteen bevat één veld, worp van het type int. Het volgende onderdeel van de klassendefinitie is een constructor. De constructor zorgt voor het construeren van een object en de initialisatie van de velden. In onze klasse Dobbelsteen is de constructor leeg. In dat geval krijgen alle velden een standaard beginwaarde. Voor numerieke velden is dat de waarde 0. Een lege constructor mag weggelaten worden. In het vervolg zullen wij dat doen. Stel dat je instanties van Dobbelsteen zou willen creëren die een verschillend aantal ogen hebben dan zou het begin van de klasse als volgt gedefinieerd kunnen worden: public class Dobbelsteen { //velden private int worp; private int aantalzijden; //constructor public Dobbelsteen(int zijden) { aantalzijden = zijden; opdracht 9-10

5 10 ENIGMA Informatieboek Het grootste deel van de klassendefinitie bestaat uit methoden. De basisvorm van een methodedefinitie is toegang resultaattype methodenaam(parameters) { statements In de klasse Dobbelsteen staan twee methoden: dobbel(), die de dobbelsteen gooit en getworp(), die het resultaat van de worp oplevert. Als eerste wordt de toegang tot de methode geregeld. Java kent vier niveaus van toegang: public, private, package en protected. Wanneer de toegang private is dan kan een methode alleen binnen de klasse aangeroepen kan worden. Voor een veld geldt in dat geval dat de waarde alleen binnen de klasse zelf direct kan worden opgevraagd of gewijzigd. Bij een objectgeoriënteerd programma is het goed gebruik de velden te verbergen voor de buitenwereld. Dit wordt data-hiding genoemd. Het verkleint de kans op oneigenlijk gebruik van de velden. Wanneer een methode public is, is de methode volledig toegankelijk: vanuit de eigen klasse en ook vanuit andere klassen. Als in de definitie de toegang ontbreekt, is automatische de default-toegang van kracht. De default-toegang is package, dat wil zeggen dat alle klassen binnen dezelfde package toegang hebben. De protected-toegang wordt gebruikt bij overerving. We komen daar later op terug. Voor de naam van de methode dobbel() staat als resultaattype het woord void. Het Engelse woord void betekent leeg. Dat wil zeggen dat deze methode geen resultaat heeft. Het is een methode die wel een effect heeft, namelijk het wijzigen van het veld worp. opdracht 11 Een package in Java bevat een aantal klassen die bij elkaar horen. Een package kan bijvoorbeeld de onderdelen van een programma bevatten die te maken hebben met de GUI. Om een package of een klasse uit een package te gebruiken in een programma, maak je gebruik van de opdracht import, bv import java.awt.* Bij het schrijven van een applet maken wij gebruik van de packages java.awt en java.applet Het resultaattype van de methode getworp() is int. Deze methode levert een resultaat op: het aantal ogen van de worp. Wanneer een methode een waarde moet teruggeven dan moet in de body van de methode staan welke waarde dat moet zijn. Daartoe dient het return-statement: return expressie;

6 Hoofdstuk 1 Objectgeoriënteerd programmeren met Java 11 De expressie kan een getal, een variabele, een berekening of een aanroep van een methode of een combinatie hiervan zijn. Het resultaat van de expressie moet van het juiste type zijn, zoals gespecificeerd in de declaratie van de methode: het resultaattype. Verder zorgt het return-statement ervoor dat de uitvoering van de methode wordt beëindigd. Dat betekent dat opdrachten, die na het return-statement in de body van een methode staan, nooit uitgevoerd worden. Beide methoden hebben geen parameter. Een voorbeeld van een methode met een parameter is de uitgebreide constructor van de klasse Dobbelsteen: public Dobbelsteen(int zijden) { aantalzijden = zijden; De parameter heeft een naam: zijden. De naam wordt voorafgegaan door de naam van een type of klasse: int. opdracht HET GEBRUIK VAN DE KLASSE DOBBELSTEEN IN EEN APPLET Nu de klasse Dobbelsteen klaar is, kan begonnen worden met het programmeren van het WerpSpelApplet. opdracht 15 In het applet wordt er met drie dobbelstenen geworpen. In het programma zullen dus drie instanties van de klasse Dobbelsteen moeten worden aangemaakt. De eerste stap is de declaratie van drie velden: dobbelsteen1, dobbelsteen2 en dobbelsteen3. Dobbelsteen dobbelsteen1; Dobbelsteen dobbelsteen2; Dobbelsteen dobbelsteen3; De declaratie creëert op zich nog geen object, maar geeft alleen maar aan dat er in de code een variabele met die naam mag voorkomen, die waarden kan krijgen van het aangegeven type. De tweede stap is het creëren van een instantie van de klasse Dobbelsteen. Dit gebeurt met de operatie new : new naam(parameters); Op de plaats van parameters kunnen 0, 1 of meer parameters staan, gescheiden door komma s. Het aantal en het type van de parameters moet overeenkomen met de definitie van een constructor van de betreffende klasse: dobbelsteen1 = new Dobbelsteen(); dobbelsteen2 = new Dobbelsteen(); dobbelsteen3 = new Dobbelsteen();

7 12 ENIGMA Informatieboek De declaratie en de creatie van de instanties van de klasse Dobbelsteen kan in een verkorte notatie onder de header van de applet gezet worden: public class WerpSpelApplet extends Applet { private Dobbelsteen dobbelsteen1 = new Dobbelsteen(); private Dobbelsteen dobbelsteen2 = new Dobbelsteen(); private Dobbelsteen dobbelsteen3 = new Dobbelsteen(); opdracht DE KLASSE APPLET Tot nu toe heb je bij het maken van applets dankbaar gebruik gemaakt van het werk dat JavaEditor voor je verricht. Het wordt tijd om de code die deze programmeeromgeving voor je genereert eens aan een nadere inspectie te onderwerpen. Je bekijkt daarbij een eenvoudige applet, die een dobbelsteen simuleert. In het applet wordt gebruik gemaakt van de klasse Dobbelsteen uit de vorige paragraaf. In het verwerkingsboek vind je de code van het DobbelApplet. opdracht IMPORT Aan het begin van het applet staan de import-opdrachten: import java.awt.*; import java.awt.event.*; import java.applet.applet; Een import-statement geeft aan dat het programma één of meer klassen wil gebruiken, bijvoorbeeld import java.awt.button; Klassen zijn gegroepeerd in packages. In het voorbeeld wordt de klasse Button uit het package java.awt geïmporteerd. Als het applet alle klassen uit een bepaald package wil importeren kan dit aangegeven worden met een * (asterisk): import java.awt.*; import java.awt.event.*; Hier worden alle klassen uit de packages java.awt en java.awt.event geïmporteerd. De package java.lang hoeft als enige niet geïmporteerd te worden. De klassen uit die package mogen altijd gebruikt worden. opdracht 22-23

8 Hoofdstuk 1 Objectgeoriënteerd programmeren met Java OVERERVING Na de importopdrachten volgt de header van de klassendefinitie: public class DobbelApplet extends Applet Achter de naam van de klasse staat de toevoeging extends Applet. Dit betekent dat deze klasse een uitbreiding is van een andere klasse: de klasse Applet. Daarmee erft DobbelApplet de velden en methoden van de klasse Applet. In de code worden vervolgens alle instance variabelen gedeclareerd en de verschillende objecten gecreëerd: // Begin variabelen private Dobbelsteen dsteen = new Dobbelsteen(); private TextField resveld = new TextField(); private Button dobbelknop = new Button(); // Einde variabelen De klasse DobbelApplet heeft een aantal methoden. De methode init() zorgt voor de initialisatie van het applet. Deze wordt bij het opstarten van het applet standaard aangeroepen. JavaEditor creëert in de methode init() een object cp van de klasse Panel: Panel cp = new Panel(null); Een paneel is een object dat gebruikt wordt om een aantal componenten te groeperen, zoals een knop en een veld. Als je in een applet bijvoorbeeld bepaalde knoppen onder aan het venster wilt hebben en andere knoppen bovenaan dan kun je daar in Java twee aparte panelen voor creëren. De methode add() voegt het object toe aan het applet: add(cp); Wat is een applet? Om te begrijpen wat er precies wordt bedoeld met 'toevoegen aan een applet', moet je weten wat men bedoelt met 'een applet'. Ten eerste kan worden bedoeld: een stuk programmacode, de applet-tekst, waarin één klasse voorkomt die de klasse Applet extends en een init-methode bevat. Ten tweede wordt onder 'applet' vaak het 'applet-in-uitvoering' verstaan, de executie of 'run' van de applet-tekst dus. Men zegt dan bijvoorbeeld: het applet zet nu een knop op het scherm. Ten derde bedoelt men soms ook gewoon het plaatje dat door het applet-in-uitvoering wordt geproduceerd en op het beeldscherm te zien is, en dat reageert op input van het toetsenbord of van de muis. Dit wordt ook wel de applet-interface genoemd. Maar eigenlijk bouwt het applet-in-uitvoering al doende intern in het geheugen een bepaalde gegevensstructuur op, waarin alle eigenschappen van alle elementen van de applet-interface (soort, naam, grootte, kleur, lettertype, etc.) worden bijgehouden, ook van de elementen die tijdelijk 'invisible' zijn. De interface is eigenlijk alleen maar een bepaalde weergave van die structuur. Aan die structuur voegt de methode add elementen toe. Als je nauwkeurig de code bekijkt, zie je dat de methode niet voorafgegaan wordt door een punt en een klasse- of objectnaam. Dat betekent, dat de methode uit de eigen klasse, de klasse DobbelApplet afkomstig is.

9 14 ENIGMA Informatieboek opdracht In de programmacode van de klasse DobbelApplet staat nergens een definitie van de methode add(). Toch kent DobbelApplet de methode wel. Dit komt door een belangrijk kenmerk van objectoriëntatie, namelijk overerving (inheritance). Een klasse kan worden gedefinieerd als een uitbreiding van bestaande klassen. Meestal gebeurt dat ook. De nieuwe klasse, die op die manier ontworpen wordt, erft alle velden (eigenschappen) en methoden en kan er nieuwe aan toevoegen of bestaande vervangen. In dit voorbeeld is DobbelApplet een uitbreiding van de bestaande klasse Applet. DobbelApplet erft de velden en methoden van de klasse Applet, waaronder de methode add(). Aan deze klasse zijn een methode (dobbelknopactionperfomed) en objecten (dsteen, dobbelknop etc.) toegevoegd. De klasse Applet kent al een methode init(). Deze methode wordt vervangen door de methode init() van DobbelApplet. Dit wordt overriding genoemd. Met name bij het ontwerpen van grote programma s is inheritance van belang. opdracht In het vervolg van de methode init() worden methoden aangeroepen, die de eigenschappen van beide objecten wijzigen. De methode addactionlistener() bewerkstelligt dat de event-handler actionperformed() wordt aangeroepen als de gebruiker van de applet een handeling verricht, zoals het klikken op de dobbelknop. De laatste methode is de event-handler van dobbelknop. In deze methode staan de statements, die moeten worden uitgevoerd als de gebruiker van het applet iets met de knop doet. opdracht TEKENEN 3.1 METHODEN OM TE TEKENEN Java heeft een speciale methode die wordt aangeroepen als er iets op het scherm moet worden getekend: paint(). Alle instructies moeten binnen deze methode worden aangeroepen om de gewenste figuren en tekst te tekenen. Net als de methode init() wordt de methode paint() standaard aangeroepen door het applet. Het volgende voorbeeld tekent een horizontale lijn op het scherm: import java.awt.*; import java.applet.applet; public class TekenLijnApplet extends Applet { public void paint(graphics g) { g.drawline(10, 10, 200, 10);

10 Hoofdstuk 1 Objectgeoriënteerd programmeren met Java 15 De methode paint() heeft als argument een object, dat het (gedeelte van) het grafische venster representeert waar de lijn getekend wordt. Gewoonlijk krijgt het de naam g. De methode drawline() heeft 4 argumenten: de eerste twee geven de x- en y- coördinaten (in pixels) van het begin van de lijn, de laatste twee van het eind van de lijn. opdracht Om een tekst op het scherm te zetten kan gebruik gemaakt worden van de methode drawstring(). import java.awt.*; import java.applet.applet; public class TekenLijnApplet extends Applet { public void paint(graphics g) { g.drawstring( Java is fun!, 20, 20); Met de methoden drawrect() en drawoval() kun je respectievelijk een rechthoek (en vierkant) of een ellips (en cirkel) tekenen. De eerste twee argumenten van deze methoden geven de plaats van de linkerbovenhoek van de figuur aan. Een ellips of cirkel heeft geen linkerbovenhoek, maar je kunt daar wel een rechthoek omheen denken (de bounding box). De laatste twee argumenten geven respectievelijk de breedte en de hoogte van de figuur. De methoden fillrect() en filloval() maken gevulde figuren. opdracht KLEUREN Om de kleur van een figuur te wijzigen kun je gebruik maken van de methode setcolor(). Als argument geef je een variabele van de klasse Color mee. Er zijn in Java 13 standaardkleuren beschikbaar: black, blue, cyan, darkgray, gray, green, lightgray, magenta, orange, pink, red, white, yellow. Wil je een figuur in de kleur rood afbeelden dan wordt het statement g.setcolor(color.red);. Behalve de 13 standaardkleuren kun je ook het RGB-formaat voor kleurcodering gebruiken: Daarvoor zul je een instantie van de klasse Color moeten maken. Deze kleur kun je dan gebruiken met de methode setcolor(). Color mijnkleur = new Color(190,100,110); g.setcolor(mijnkleur); Het eerste argument van de constructor bevat de roodwaarde, het tweede argument de groenwaarde en het derde argument de blauwwaarde, elk uit een reeks van 0 tot en met 255.

11 16 ENIGMA Informatieboek 3.3 HET VERKEERSLICHT In het applet hiernaast zie je een verkeerslicht dat door middel van drie knoppen bediend wordt. Zoals je al gezien hebt, wordt het verkeerslicht getekend in de methode paint(). public void paint(graphics g) { Color bruin = new Color(110,75,40); g.setcolor(bruin); g.fillrect(140,20,60,150); g.fillrect(160,150,20,80); g.setcolor(color.black); g.filloval(150,25,40,40); g.filloval(150,75,40,40); g.filloval(150,125,40,40); if (rood) { g.setcolor(color.red); g.filloval(150,25,40,40); if (oranje) { g.setcolor(color.orange); g.filloval(150,75,40,40); if (groen) { g.setcolor(color.green); g.filloval(150,125,40,40); De variabelen rood, oranje en groen zijn van het type boolean. De waarde van deze variabelen wordt door het indrukken van de event-handler van een van de knoppen gewijzigd. Daarna moet het verkeerslicht opnieuw getekend worden. Omdat de methode paint() in principe maar een keer wordt uitgevoerd (aan het begin van de uitvoering van het applet), moet er voor gezorgd worden dat na het klikken op een knop de methode opnieuw geactiveerd wordt. Dit gebeurt niet rechtstreeks door de methode paint() aan te roepen, maar door een aanroep van de methode repaint(). Deze methode maakt deel uit van de klasse Applet en door inheritance heeft ook de VerkeerslichtApplet de beschikking over deze methode. opdracht 37-42

12 Hoofdstuk 1 Objectgeoriënteerd programmeren met Java 17 4 ARRAYS 4.1 ARRAYS Tot nu toe heb je gewerkt met variabelen die op zichzelf staan: int getal; String naam; Vaak zal het voorkomen dat gegevens niet los van elkaar staan, maar een reeks vormen, bijvoorbeeld een telefoongids, een adreslijst of een catalogus van boeken. Turks Fruit Het verdriet van België De aanslag De buitenvrouw De bovenstaande rij bevat de titels van boeken. In Java kun je een dergelijke reeks vastleggen met behulp van een array. Je kunt een array voorstellen als een rij (of kolom) met dezelfde soort gegevens, bijvoorbeeld een array met boektitels of een array met lottogetallen. Een array is een object en moet daarom met de new-opdracht worden gecreëerd. De items in de array worden de elementen genoemd. De elementen van een array moeten allemaal van hetzelfde type zijn. (Voor het bundelen van variabelen van verschillende type gebruik je een klasse.) Je verwijst naar een element via de bijbehorende positie in de array, de index. 4.2 EEN ARRAY MAKEN Net als andere variabelen moeten arrays gedeclareerd worden: String[] boektitel; Achter het woord String staan rechthoekige haakjes []. Daarmee wordt aangegeven dat het om een referentie naar een array van strings gaat en niet naar een gewone string. De volgende stap is de creatie van de array. Daarbij geef je het maximaal aantal elementen op dat de array kan bevatten: boektitel = new String[4]; In het array-object boektitel kunnen nu maximaal 4 boektitels worden opgenomen. Let op! De indices lopen hierbij van 0 tot en met 3. Natuurlijk kunnen de declaratie en de creatie ook in één statement worden samengenomen: String[] boektitel = new String[4]; Schematisch zou je deze array als volgt kunnen voorstellen: naam van element boektitel[0] boektitel[1] boektitel[2] boektitel[3] array index opdracht 43-44

13 18 ENIGMA Informatieboek 4.3 EEN ARRAY VULLEN De elementen van de array kunnen gevuld worden door middel van een toekenning: boektitel[0] = "Turks Fruit"; boektitel[1] = "Het verdriet van België"; boektitel[2] = "De aanslag"; boektitel[3] = "De buitenvrouw"; Door gebruik te maken van een index is het gebruik van een array erg handig. In het volgende voorbeeld wordt de boekenlijst afgebeeld op een applet. Daarvoor maken we gebruik van een instantie van de klasse List (boekenlijst). De interface van het applet bevat daarnaast een instantie van de klasse Button (OK-knop). Als eerste wordt de array gedeclareerd en gecreëerd: public class Boekenlijst extends Applet { private int AANTAL = 4; private String[] boektitel = new String[AANTAL]; private String[] boekauteur = new String[AANTAL]; In de event-handler van de OK-knop worden de elementen gevuld met de titels van de boeken en de daarbij behorende schrijvers. Met behulp van het for-statement wordt langs alle elementen van de array gelopen. Zij worden met behulp van de methode add() van de klasse List in de lijst gezet. Deze methode krijgt twee argumenten mee en geeft geen resultaat: void add(string, int) Het eerste argument is het item dat toegevoegd moet worden aan de lijst. Het tweede argument geeft de positie in de lijst aan (te beginnen bij positie 0). public void toonknopactionperformed(actionevent evt) { boektitel[0] = "Turks Fruit"; boektitel[1] = "Het verdriet van België"; boektitel[2] = "De aanslag"; boektitel[3] = "De buitenvrouw"; boekauteur[0] = "Jan Wolkers"; boekauteur[1] = "Hugo Claus"; boekauteur[2] = "Harry Mulisch"; boekauteur[3] = "Joost Zwagerman"; for (int t = 0; t < AANTAL; t++) { boekenlijst.add(boektitel[t] + " - " + boekauteur[t],t); opdracht 45-47

14 Hoofdstuk 1 Objectgeoriënteerd programmeren met Java ZOEKEN IN EEN ARRAY Een belangrijk voordeel van arrays is dat je er heel makkelijk iets in kunt opzoeken. In het voorbeeld van het ZoekMaximumApplet wordt het grootste getal gezocht in een lijst van 10 willekeurig gegenereerde getallen. De interface van het applet bevat een instantie van de klasse Button, de klasse Label en de klasse List. De array bevat een lijst met int-waarden. Die maak je in principe op dezelfde manier als een array met strings: public class ZoekMaximumApplet extends Applet { private int AANTAL = 10; private int[] intrij = new int[aantal]; De event-handler van de Maximum-knop zorgt ervoor dat de elementen worden gevuld met int-waarden. Vervolgens wordt in de array de hoogste waarde gezocht: public void maximumknopactionperformed(actionevent evt) { intlijst.removeall(); for (int t = 0; t < AANTAL; t++) { intrij[t] = (int)(math.random()*100); intlijst.add(string.valueof(intrij[t]),t); int maximum = intrij[0]; for (int t = 1; t < AANTAL; t++) { if (maximum < intrij[t]) maximum = intrij[t]; uitvoerlabel.settext(string.valueof(maximum)); Als eerste worden alle items uit intlijst (een instantie van de klasse List) verwijderd: intlijst.removeall() In het eerste for-statement wordt een lijst van 10 intwaarden gegenereerd. Daarvoor wordt gebruik gemaakt van de methode random() uit de klasse Math. Deze waarden worden opgeslagen in de array intrij. Met behulp van de methode add() worden de elementen vervolgend in de lijst op het applet geplaatst. Dan wordt er een variabele maximum gedeclareerd en geïnitialiseerd met de waarde van het eerste element. Vervolgens worden in het tweede for-statement de overige elementen van de array afgelopen om te zien of er een grotere waarde is dan de waarde van maximum. Is dat het geval dan wordt de waarde van maximum vervangen door die van het actuele element. Wanneer alle elementen de revue gepasseerd zijn wordt de waarde van maximum op het scherm gezet. opdracht 48-49

15 20 ENIGMA Informatieboek 4.5 ZOEKEN VAN EEN BEPAALDE WAARDE Stel dat je in de boekenlijst wilt zoeken of een bepaald boek aanwezig is. Wanneer dat het geval is, moet het applet de titel geven. Anders moet er een mededeling verschijnen dat het boek niet gevonden is. Voor het zoeken wordt een methode zoek() gebruikt. Deze methode bestaat uit een for-statement die de hele array afloopt op zoek naar de gevraagde titel (een string). Zodra die gevonden is levert de methode door middel van het statement return titel + gevonden! ; de gevraagde titel op en stopt de methode. Als de titel niet wordt gevonden dan komt de methode uiteindelijk terecht bij het statement return Titel + titel + niet gevonden ;. public String zoek(string[] boekrij, String titel) { for(int t = 0 ; t < boekrij.length; t++) { if (boekrij[t].equals(titel)) return boekrij[t] + gevonden! ; return "Titel "+ titel+ " niet gevonden!"; Het zal vaak voorkomen dat je in een programma de bewerking op een array door een methode wilt laten doen. De array wordt dan als argument aan de methode meegegeven. In de methode zoek() wordt gezocht naar een string in een array, die als argument van de methode is meegegeven: boekrij. Het woord length is een veld van een array-object, dat de lengte van de array oplevert. Een lengte van een array is in het programma niet meer te wijzigen. Je kunt alleen de lengte opvragen. Wanneer je een programma schrijft, moet je van tevoren bepalen hoe groot de array is, die je nodig hebt. Wanneer de interface gemaakt is, de array gedeclareerd, gecreëerd en geïnitialiseerd is en de methode zoek() geïmplementeerd is, dan blijft het schrijven van de event-handler van de Zoek-knop over. Deze bestaat maar uit twee statements: Een statement dat zorg draagt voor de invoer van de titel. Een statement dat het resultaat van de methode zoek() op het scherm plaatst. opdracht 50-59

16 Hoofdstuk 1 Objectgeoriënteerd programmeren met Java 21 5 WERKEN MET ARRAYS 5.1 HET CD-APPLET In deze paragraaf bekijken we een toepassing van een array in een iets grotere applet: het CdApplet. Het applet moet het mogelijk maken om een lijst met cd s (en eventueel dvd's) samen te stellen. De gebruiker van het applet moet de mogelijkheid hebben om: een cd te kunnen toevoegen aan de lijst; een cd te verwijderen uit de lijst; een cd te verplaatsen; de lijst alfabetisch op naam of titel te sorteren. De cd s worden geplaatst in cdlijst, een instantie van de klasse List. De invoervelden heten artiestveld en titelveld. De knoppen heten respectievelijk voegtoeknop, verwijderknop, omhoogknop, omlaagknop, zoekartiestknop, zoektitelknop, sorteerartiestknop en sorteertitelknop. opdracht 60 We hebben te maken met twee gegevens die onlosmakelijk bij elkaar horen: de naam van de artiest en de titel van de cd. Daarvoor maken we een aparte klasse CdDvd. public class CdDvd { public String naam; public String titel; De klasse CdDvd bevat twee velden voor het bijhouden van de gegevens en heeft verder geen methodes. Van deze klasse heb je een reeks van instanties nodig om alle cd s op te slaan. Het ligt voor de hand om hiervoor een array te gebruiken.

17 22 ENIGMA Informatieboek We gaan ervan uit dat het programma vijftig cd s moet kunnen bijhouden. Als eerste moet je een naam declareren (referentie) voor de array: private int MAXAANTAL = 50; private CdDvd[] cddvdrij = new CdDvd[MAXAANTAL]; De array bevat op dit moment alleen nog maar de referenties voor cddvdrij. (CdDvd is een referentietype zoals alle klassen, in tegenstelling tot primitieve typen zoals bijvoorbeeld int.) Als laatste stap moet je de array vullen met objecten. Dat gaat vaak het eenvoudigst door in de init-methode van het applet na de componenten met een forstatement de array te initialiseren: for (int t = 0; t < MAXAANTAL; t++) cddvdrij[t] = new CdDvD(); opdracht TOEVOEGEN De volgende stap is het schrijven van de event-handlers van de verschillende knoppen. Als eerste de event-handler van de voegtoeknop: public void voegtoeknopactionperformed(actionevent evt) { cddvdrij[aantal].naam = artiestveld.gettext(); cddvdrij[aantal].titel = titelveld.gettext(); artiestveld.settext(""); titelveld.settext(""); cdlijst.add(cddvdrij[aantal].naam+" - "+cddvdrij[aantal].titel,aantal); cdlijst.select(aantal); aantal++; artiestveld.requestfocus(); In de eerste twee regels worden de naam van de artiest en de titel van de cd uit de velden gelezen en vastgelegd in de velden naam en titel van de cddvdrij. De variabele aantal is een instance variabele, die aan het begin van de klasse is gedeclareerd en geïnitialiseerd: int aantal = 0; In deze variabele wordt bijgehouden hoeveel cd s er zijn vastgelegd in de array. Verder staan er in deze event-handler twee methodes van de klasse List. De methode add(string,int) voegt een element toe aan de lijst op de aangegeven positie. Vervolgens plaatst select(int) de cursor op de aangegeven positie. opdracht 63-64

18 Hoofdstuk 1 Objectgeoriënteerd programmeren met Java VERWIJDEREN De code van de event-handler voor de verwijderknop is: public void verwijderknopactionperformed(actionevent evt) { int index = cdlijst.getselectedindex(); for (int i = index; i < aantal; i++) { cddvdrij[i].setcddvd(cddvdrij[i+1]); aantal--; cdlijst.removeall(); for (int i = 0; i < aantal; i++) { cdlijst.add(cddvdrij[i].naam + " - " + cddvdrij[i].titel,i); cdlijst.select(index); In de eerste regel staat de methode getselectedindex(). Deze methode heeft als resultaat een int die de index van het geselecteerde element in de lijst geeft. Door middel van het for-statement wordt het geselecteerde element uit de array overschreven door het volgende element. Daarvoor breiden we de klasse CdDvd uit met een methode setcddvd(). De methode krijgt als argument een instantie van de klasse mee: public void setcddvd(cddvd c) { this.naam = c.naam; this.titel = c.titel; In de methode staat het woord this. Daarmee wordt aangegeven dat het veld naam van het huidige object wordt gedoeld. In de for-loop worden alle elementen uit de array vanaf het geselecteerde element een plaats in de index opgeschoven. Daarna wordt aantal met 1 verlaagd omdat er een element verwijderd is uit de array. Tenslotte wordt de lijst opnieuw gevuld met de nieuwe array. opdracht 65-66, VERPLAATSEN De volgende twee knoppen moeten het mogelijk maken om een element te verplaatsen. Om bijvoorbeeld omhoog te verplaatsen verwisselen we het element met het element dat er boven staat. Het algoritme gaat als volgt: tijdelijk = element[index]; element[index] = element[index-1]; element[index-1] = tijdelijk; opdracht 67

19 24 ENIGMA Informatieboek We bestuderen de code van de event-handler voor de omhoogknop: public void omhoogknopactionperformed(actionevent evt) { if (aantal > 1) { int index = cdlijst.getselectedindex(); if (index > 0) { CdDvd tijdelijk = new CdDvd(); tijdelijk.setcddvd(cddvdrij[index]); cddvdrij[index].setcddvd(cddvdrij[index-1]); cddvdrij[index-1].setcddvd(tijdelijk); index--; cdlijst.removeall(); for (int i = 0; i < aantal; i++) { cdlijst.add(cddvdrij[i].naam + " - " + cddvdrij[i].titel,i); cdlijst.select(index); In het eerste if-statement wordt gecontroleerd of er wel meer dan één element in de lijst staat. Het tweede if-statement controleert of er wel een element geselecteerd is. Wanneer er geen element geselecteerd is levert de methode getselectedindex() als resultaat -1. Vervolgens wordt er een instantie van de klasse CdDvd, genaamd tijdelijk, gecreëerd. Met behulp van dit object worden de twee elementen verwisseld. Als laatste wordt de lijst opnieuw gevuld met de nieuwe array. opdracht SORTEREN De laatste event-handlers, die geschreven moeten worden, zijn die voor de sorteerknoppen. Om elementen in een lijst te sorteren zijn er diverse algoritmen. Het algoritme dat wij gaan gebruiken wordt bubble sort genoemd. Het idee van bubble sort is dat je de lijst doorloopt en dat je steeds twee opeenvolgende elementen, die niet in de juiste volgorde staan ten opzichte van elkaar, verwisselt. Na de eerste keer de lijst doorlopen te hebben staat het grootste element in de rij onderaan. Na de tweede keer staat ook het een na grootste element op de juiste plaats. Zo bubbelt als bij een koolzuurhoudende drank de gesorteerde lijst langzaam omhoog. De lijst wordt hierbij herhaaldelijk doorlopen. Dit algoritme zullen we met een voorbeeld illustreren. Stel we hebben een lijst met vier namen die we alfabetisch willen sorteren: Ronald, Marja, René en Hans. Bubble sort werkt als volgt:

20 Hoofdstuk 1 Objectgeoriënteerd programmeren met Java 25 eerste cyclus Ronald Marja Marja Marja verwisselen Marja Ronald René René verwisselen René René Ronald Hans verwisselen Hans Hans Hans Ronald tweede cyclus Marja niet Marja Marja René verwisselen René Hans verwisselen Hans Hans René Ronald Ronald Ronald derde cyclus Marja verwisselen Hans René Ronald Hans Marja René Ronald automatisch ook op de juiste plaats opdracht 72 Voor dit sorteeralgoritme kun je een PSD maken: We gaan weer terug naar het cdapplet. Het bubble sort algoritme is hier ook te gebruiken om de lijst met cd s en dvd s te sorteren. In Java ziet de programmacode voor het sorteren van de lijst op naam er als volgt uit: public void sorteerartiestknopactionperformed(actionevent evt) { for (int a = aantal; a > 1; a--) { for (int i = 0; i < a-1; i++) { CdDvd tijdelijk = new CdDvd(); tijdelijk.setcddvd(cddvdrij[i]); if (tijdelijk.naam.compareto(cddvdrij[i+1].naam) > 0) { cddvdrij[i].setcddvd(cddvdrij[i+1]); cddvdrij[i+1].setcddvd(tijdelijk); cdlijst.removeall(); for (int i = 0; i < aantal; i++) { cdlijst.add(cddvdrij[i].naam + " - " + cddvdrij[i].titel,i); cdlijst.select(0); opdracht 73-78

45 Als je een array van 10 elementen wilt hebben, zijn de elementen genummerd van 0 tot en met 9.

45 Als je een array van 10 elementen wilt hebben, zijn de elementen genummerd van 0 tot en met 9. 4 ARRAYS VERWERKEN 43 a Als gegevens een reeks vormen, zoals bij namen, adressen enz. b De positie van een element van een array c Een item in een array. 44 Stel dat je het array de naam tabel wilt geven:

Nadere informatie

http://www.liacs.nl/home/kosters/java/

http://www.liacs.nl/home/kosters/java/ sheets Programmeren 1 Java college 2, Walter Kosters De sheets zijn gebaseerd op de hoofdstukken 2 tot en met 6 van: D. Bell en M. Parr, Java voor studenten, Prentice Hall, 2002 http://www.liacs.nl/home/kosters/java/

Nadere informatie

6,1. Samenvatting door een scholier 1809 woorden 28 oktober keer beoordeeld. Informatica

6,1. Samenvatting door een scholier 1809 woorden 28 oktober keer beoordeeld. Informatica Samenvatting door een scholier 1809 woorden 28 oktober 2005 6,1 16 keer beoordeeld Vak Methode Informatica Turing informatica samenvatting. hst3: algoritme:een beschrijving van stappen die gedaan moeten

Nadere informatie

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

Omschrijf bij ieder onderdeel van de methode de betekenis ervan. Java kent twee groepen van klassen die een GUI kunnen maken: awt en swing. irkel (met Jpanel) ij de onderstaande opdracht behoort het bestand Panels: JPanels_1.java (map Panel) in de map irkel. pplicaties in Java hebben altijd een publieke klasse waarin een methode main voorkomt.

Nadere informatie

eerste voorbeelden in Java

eerste voorbeelden in Java Beginselen van programmeren 2 eerste voorbeelden in Java vereisten: een editor: om programma in te tikken en te bewaren een Java compiler: zet ingetikte (bron-) programma om naar byte-code een Java Virtuele

Nadere informatie

1 Objectgeoriënteerd programmeren met Java

1 Objectgeoriënteerd programmeren met Java 6 ENIGMA Verwerkingsboek 1 Objectgeoriënteerd programmeren met Java Na verwerking van dit hoofdstuk kun je: uitleggen wat een object, een klasse en een instantie zijn; uitleggen wat een constructor,velden

Nadere informatie

Zo vind u hierin de volgende documentatie over de klasse Applet: +----java.awt.panel. +----java.applet.applet

Zo vind u hierin de volgende documentatie over de klasse Applet: +----java.awt.panel. +----java.applet.applet VII. De Java-klassen A. Package Het mooie aan Java is de programmeur een hele serie van klassen en afgeleide klassen geleverd worden, die de programmeur naar behoefte kan gebruiken. De basisklasse van

Nadere informatie

X. Grafische elementen

X. Grafische elementen X. Grafische elementen Om u te helpen bij grafische voorstellingen heeft java een aantal grafische afbeeldingen die u kunt gebruiken. Meestal worden zij in de methode paint(graphics g) geplaatst. Zij moeten

Nadere informatie

APPLICATIEBOUW 3E COLLEGE: OBJECT GEORIËNTEERD PROGRAMMEREN, METHODEN, PARAMETERS, SCOPE VAN VARIABELEN. Onderdeel van SmartProducts

APPLICATIEBOUW 3E COLLEGE: OBJECT GEORIËNTEERD PROGRAMMEREN, METHODEN, PARAMETERS, SCOPE VAN VARIABELEN. Onderdeel van SmartProducts APPLICATIEBOUW 3E COLLEGE: OBJECT GEORIËNTEERD PROGRAMMEREN, METHODEN, PARAMETERS, SCOPE VAN VARIABELEN Onderdeel van SmartProducts INHOUD COLLEGE 3 Scope van variabelen {3.9} Class ontwerpen en maken,

Nadere informatie

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

Datatypes Een datatype is de sort van van een waarde van een variabele, veel gebruikte datatypes zijn: String, int, Bool, char en double. Algemeen C# Variabele Een variabele is een willekeurige waarde die word opgeslagen. Een variabele heeft altijd een datetype ( De soort waarde die een variabele bevat). Datatypes Een datatype is de sort

Nadere informatie

voegtoe: eerst methode bevat gebruiken, alleen toevoegen als bevat() false is

voegtoe: eerst methode bevat gebruiken, alleen toevoegen als bevat() false is PROEF-Tentamen Inleiding programmeren (IN1608WI), X januari 2010, 9.00-11.00, Technische Universiteit Delft, Faculteit EWI, Afdeling 2. Open boek tentamen: bij het tentamen mag alleen gebruik worden gemaakt

Nadere informatie

Tentamen Object Georiënteerd Programmeren TI1200 30 januari 2013, 9.00-12.00 Afdeling SCT, Faculteit EWI, TU Delft

Tentamen Object Georiënteerd Programmeren TI1200 30 januari 2013, 9.00-12.00 Afdeling SCT, Faculteit EWI, TU Delft Tentamen Object Georiënteerd Programmeren TI1200 30 januari 2013, 9.00-12.00 Afdeling SCT, Faculteit EWI, TU Delft Bij dit tentamen mag je geen gebruik maken van hulpmiddelen zoals boek of slides. Dit

Nadere informatie

Kleine cursus PHP5. Auteur: Raymond Moesker

Kleine cursus PHP5. Auteur: Raymond Moesker Kleine cursus PHP5 Auteur: Raymond Moesker Kleine cursus PHP PHP is platform en CPU onafhankelijk, open source, snel, heeft een grote userbase, het is object georiënteerd, het wordt omarmd door grote bedrijven

Nadere informatie

Hoofdstuk 7: Werken met arrays

Hoofdstuk 7: Werken met arrays Programmeren in Microsoft Visual Basic 6.0, lessenserie voor het voortgezet onderwijs HAVO/VWO David Lans, Emmauscollege, Marnix Gymnasium Rotterdam, januari 2004 Hoofdstuk 7: Werken met arrays 7.0 Leerdoel

Nadere informatie

Vakgroep CW KAHO Sint-Lieven

Vakgroep CW KAHO Sint-Lieven Vakgroep CW KAHO Sint-Lieven Objecten Programmeren voor de Sport: Een inleiding tot JAVA objecten Wetenschapsweek 20 November 2012 Tony Wauters en Tim Vermeulen tony.wauters@kahosl.be en tim.vermeulen@kahosl.be

Nadere informatie

HOOfDsTuk 1 Objecten en klassen

HOOfDsTuk 1 Objecten en klassen HOOfDsTuk 1 Belangrijkste concepten in dit hoofdstuk: objecten klassen methodes parameters We springen meteen in het diepe en maken een begin met onze behandeling van objectgeorienteerd programmeren. Om

Nadere informatie

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

Objectgeorïenteerd werken is gebaseerd op de objecten die door het systeem gemanipuleerd worden. Herhaling Objectgeorïenteerd werken is gebaseerd op de objecten die door het systeem gemanipuleerd worden. De basisbouwsteen is het object; een geïntegreerde eenheid van data en operaties werkend op deze

Nadere informatie

Uitwerking Aanvullend tentamen Imperatief programmeren Woensdag 24 december 2014, 13.30 15.30 uur

Uitwerking Aanvullend tentamen Imperatief programmeren Woensdag 24 december 2014, 13.30 15.30 uur Uitwerking Aanvullend tentamen Imperatief programmeren Woensdag 24 december 2014, 13.30 15.30 uur 1. deze opgave telt voor 30% van het totaal. Schrijf een compleet programma, dat door de gebruiker vanaf

Nadere informatie

Klassen & objecten, overerving, abstracte klassen, debuggen, interfaces, formulieren, polymorfie, statische methoden, event-handlers

Klassen & objecten, overerving, abstracte klassen, debuggen, interfaces, formulieren, polymorfie, statische methoden, event-handlers 1 Inhoud Klassen & objecten, overerving, abstracte klassen, debuggen, interfaces, formulieren, polymorfie, statische methoden, event-handlers 2 Geluidsbronnen simulator, deel 2 Inleiding De weergave versnellen

Nadere informatie

Derde deeltentamen Imperatief programmeren - versie 1 Vrijdag 6 november 2015, uur

Derde deeltentamen Imperatief programmeren - versie 1 Vrijdag 6 november 2015, uur Derde deeltentamen Imperatief programmeren - versie 1 Vrijdag 6 november 2015, 11.00-13.00 uur Schrijf op elk ingeleverd blad je naam. Schrijf op het eerste blad ook je studentnummer en het aantal ingeleverde

Nadere informatie

Objectgeoriënteerd programmeren in Java 1

Objectgeoriënteerd programmeren in Java 1 Objectgeoriënteerd programmeren in Java 1 CPP Javaprogrammeur Bijeenkomst 3 Leereenheden 7, 8, 9 De Java API Java bevat een grote bibliotheek standaardklassen: de Java API Voorbeelden java.lang basisklassen

Nadere informatie

Tweede deeltentamen Mobiel programmeren - versie 1 Vrijdag 2 februari 2018, uur

Tweede deeltentamen Mobiel programmeren - versie 1 Vrijdag 2 februari 2018, uur Tweede deeltentamen Mobiel programmeren - versie 1 Vrijdag 2 februari 2018, 8.30-10.30 uur Schrijf op elk ingeleverd blad je naam. Schrijf op het eerste blad ook je studentnummer en het aantal ingeleverde

Nadere informatie

Derde deeltentamen Imperatief programmeren - versie 1 Vrijdag 9 november 2018, uur

Derde deeltentamen Imperatief programmeren - versie 1 Vrijdag 9 november 2018, uur Derde deeltentamen Imperatief programmeren - versie 1 Vrijdag 9 november 2018, 11.00-13.00 uur Schrijf op elk ingeleverd blad je naam. Schrijf op het eerste blad ook je studentnummer en het aantal ingeleverde

Nadere informatie

public Paneel() { knop = new JButton( Klik ); knop.addactionlistener( new KnopHandler() ); tekstvak = new JTextField(10); add(knop); add(tekstvak);

public Paneel() { knop = new JButton( Klik ); knop.addactionlistener( new KnopHandler() ); tekstvak = new JTextField(10); add(knop); add(tekstvak); Vaknaam: Programmeren I (Java) - Tentamen Module: 2 Datum/Tijd: 17 mrt 2015 / 18.30 20:30 Richting: ICT Code: IC011 Docent: E. Lieuw Boeken en aantekeningen NIET toegestaan. Kladpapier is wel toegestaan.

Nadere informatie

Uitwerking Eerste deeltentamen Mobiel programmeren - versie 1 Vrijdag 23 december 2016, uur

Uitwerking Eerste deeltentamen Mobiel programmeren - versie 1 Vrijdag 23 december 2016, uur Uitwerking Eerste deeltentamen Mobiel programmeren - versie 1 Vrijdag 23 december 2016, 11.00-13.00 uur 1. Een klasse is niet: (a) het type van een object (b) een groepje methoden (c) een groepje variabelen

Nadere informatie

Derde deeltentamen Imperatief programmeren - versie 1 Vrijdag 7 november 2014, uur

Derde deeltentamen Imperatief programmeren - versie 1 Vrijdag 7 november 2014, uur Derde deeltentamen Imperatief programmeren - versie 1 Vrijdag 7 november 2014, 8.30-10.30 uur Schrijf op elk ingeleverd blad je naam. Schrijf op het eerste blad ook je studentnummer en het aantal ingeleverde

Nadere informatie

Programmeren (1) Examen NAAM:

Programmeren (1) Examen NAAM: Schrijf al je antwoorden op deze vragenbladen (op de plaats die daarvoor is voorzien) en geef zowel klad als net af. Bij heel wat vragen moet je zelf Java-code schrijven. Hou dit kort en bondig. Je hoeft

Nadere informatie

Labo 2 Programmeren II

Labo 2 Programmeren II Labo 2 Programmeren II L. Schoofs K. van Assche Gebruik Visual Studio 2005 om een programma te ontwikkelen dat eenvoudige grafieken tekent. Deze opgave heb je vorig academiejaar reeds in Java geïmplementeerd.

Nadere informatie

Variabelen en statements in ActionScript

Variabelen en statements in ActionScript Ontwikkelen van Apps voor ios en Android Variabelen en statements in ActionScript 6.1 Inleiding Als we het in de informatica over variabelen hebben, bedoelen we een stukje in het geheugen van de computer

Nadere informatie

Modelleren en Programmeren

Modelleren en Programmeren Modelleren en Programmeren Jeroen Bransen 13 december 2013 Terugblik Fibonacci public class Fibonacci { public static void main(string[] args) { // Print het vijfde Fibonaccigetal System.out.println(fib(5));

Nadere informatie

De sheets zijn gebaseerd op met name hoofdstuk. D. Bell en M. Parr, Java voor studenten, Prentice Hall,

De sheets zijn gebaseerd op met name hoofdstuk. D. Bell en M. Parr, Java voor studenten, Prentice Hall, sheets Programmeren 1 Java college 4, Walter Kosters De sheets zijn gebaseerd op met name hoofdstuk 8 van: D. Bell en M. Parr, Java voor studenten, Prentice Hall, 2002 http://www.liacs.nl/home/kosters/java/

Nadere informatie

Informatie over. 5VWO DT51: JavaLogo. Casper Bezemer. Toetsweek 1 13 oktober 2016

Informatie over. 5VWO DT51: JavaLogo. Casper Bezemer. Toetsweek 1 13 oktober 2016 Informatie over 5VWO DT51: JavaLogo Casper Bezemer Toetsweek 1 13 oktober 2016 1 Informatie Voor toets DT51 wordt jou gevraagd Java(Logo) programma s te schrijven. De eerste opdracht is een Krimpfiguur,

Nadere informatie

Tentamen Objectgeorienteerd Programmeren IN1205 Voorbeeld

Tentamen Objectgeorienteerd Programmeren IN1205 Voorbeeld Tentamen Objectgeorienteerd Programmeren IN1205 Voorbeeld Afdeling ST Faculteit EWI TU Delft Bij dit tentamen mag u gebruik maken van: Barnes, Object-Oriented Programming with Java en de Notitie Algoritmiek

Nadere informatie

Modelleren en Programmeren

Modelleren en Programmeren Modelleren en Programmeren Jeroen Bransen 11 december 2015 Ingebouwde datastructuren Meer boomstructuren Access specifiers Gebruikersinvoer Codestijl Packages SAT-solver Ingebouwde datastructuren Ingebouwde

Nadere informatie

Programmeren in Java 3

Programmeren in Java 3 26 september 2007 Deze les korte herhaling vorige les Unified Modelling Language notatie van een class afleiding pointers abstracte classes polymorphisme dubieuze(?) constructies interfaces Meer over class

Nadere informatie

Tentamen Imperatief en Object-georiënteerd programmeren in Java voor CKI

Tentamen Imperatief en Object-georiënteerd programmeren in Java voor CKI Tentamen Imperatief en Object-georiënteerd programmeren in Java voor CKI Vrijdag 22 januari 2010 Toelichting Dit is een open boek tentamen. Communicatie en het gebruik van hulpmiddelen zijn niet toegestaan.

Nadere informatie

IMP Uitwerking week 13

IMP Uitwerking week 13 IMP Uitwerking week 13 Opgave 1 Nee. Anders moet bijvoorbeeld een venster applicatie een subklasse zijn van zowel Frame en WindowListener. Als de applicatie ook een button of een menu heeft, dan moet het

Nadere informatie

Een topprogrammeur in het OO programmeren is Graig Larman. Hij bedacht de volgende zin:

Een topprogrammeur in het OO programmeren is Graig Larman. Hij bedacht de volgende zin: Java Les 2 Theorie Beslissingen Algemeen Net als in het dagelijks leven worden in software programma s beslissingen genomen, naast het toekennen van waarden aan variabelen zijn beslissingen één van de

Nadere informatie

4 Visueel programmeren met Java

4 Visueel programmeren met Java Hoofdstuk 4 Visueel programmeren met Java 47 4 Visueel programmeren met Java 1 ALGORITMEN Peter Dijkstra viert morgen zijn verjaardag. Voor de gasten wil hij een appeltaart bakken. Daarvoor zoekt hij een

Nadere informatie

Stacks and queues. Introductie 45. Leerkern 45. Terugkoppeling 49. Uitwerking van de opgaven 49

Stacks and queues. Introductie 45. Leerkern 45. Terugkoppeling 49. Uitwerking van de opgaven 49 Stacks and queues Introductie 45 Leerkern 45 6.1 Stacks 45 6.2 Queues 47 6.3 Double-ended queues 48 Terugkoppeling 49 Uitwerking van de opgaven 49 Bijlage: Diagrammen belangrijkste interfaces en klassen

Nadere informatie

Tentamen Objectgeorienteerd Programmeren TI februari Afdeling ST Faculteit EWI TU Delft

Tentamen Objectgeorienteerd Programmeren TI februari Afdeling ST Faculteit EWI TU Delft I ' Tentamen Objectgeorienteerd Programmeren TI 1200 1 februari 2012 9.00-12.00 Afdeling ST Faculteit EWI TU Delft Bij dit tentamen mag je geen gebruik maken van hulpmiddelen zoals boek of slides. Dit

Nadere informatie

Universiteit van Amsterdam FNWI. Voorbeeld van tussentoets Inleiding programmeren

Universiteit van Amsterdam FNWI. Voorbeeld van tussentoets Inleiding programmeren Universiteit van Amsterdam FNWI Voorbeeld van tussentoets Inleiding programmeren Opgave 1: Wat is de uitvoer van dit programma? public class Opgave { static int i = 0 ; static int j = 1 ; int i = 1 ; int

Nadere informatie

Wat is een grafische gebruikersinterface (GUI)?

Wat is een grafische gebruikersinterface (GUI)? Wat is een grafische gebruikersinterface (GUI)? GUI is een Engelse afkorting voor Graphical User Interface, oftewel grafische gebruikersinterface. Het is de term voor het bedieningspaneel van een computerprogramma.

Nadere informatie

Java Les 3 Theorie Herhaal structuren

Java Les 3 Theorie Herhaal structuren Java Les 3 Theorie Herhaal structuren Algemeen Een herhaal structuur een is programmeertechniek waarbij bepaalde Java instructies worden herhaald net zo lang tot een bepaalde voorwaarde is bereikt. Een

Nadere informatie

Uitwerking Tweede deeltentamen Mobiel programmeren - versie 1 Vrijdag 2 februari 2018, uur

Uitwerking Tweede deeltentamen Mobiel programmeren - versie 1 Vrijdag 2 februari 2018, uur Uitwerking Tweede deeltentamen Mobiel programmeren - versie 1 Vrijdag 2 februari 2018, 8.30-10.30 uur 1. Een Intent-object wordt gebruikt voor communicatie (a) van een Activity naar een bijbehorende View

Nadere informatie

Modelleren en Programmeren

Modelleren en Programmeren Modelleren en Programmeren Jeroen Bransen 6 december 2013 Terugblik Programma en geheugen Opdrachten Variabelen Methoden Objecten Klasse Programma en geheugen Opdrachten Variabelen zijn gegroepeerd in

Nadere informatie

Imperatief Programmeren, derde deeltentamen (INFOIMP) 4 november 2005

Imperatief Programmeren, derde deeltentamen (INFOIMP) 4 november 2005 Departement Informatica en Informatiekunde, Faculteit Bètawetenschappen, UU. In elektronische vorm beschikbaar gemaakt door de TBC van A Eskwadraat. Het college INFOIMP werd in 2005/2006 gegeven door Jeroen

Nadere informatie

Voorbeeldtentamen Inleiding programmeren (IN1608WI), Oktober 2003, , Technische Universiteit Delft, Faculteit EWI, Afdeling 2.

Voorbeeldtentamen Inleiding programmeren (IN1608WI), Oktober 2003, , Technische Universiteit Delft, Faculteit EWI, Afdeling 2. Voorbeeldtentamen Inleiding programmeren (IN1608WI), Oktober 2003, 14.00-15.30, Technische Universiteit Delft, Faculteit EWI, Afdeling 2. Dit tentamen bestaat uit twee delen. Deel 1 (14.00-14.45, gesloten

Nadere informatie

VI. Klassen en objecten

VI. Klassen en objecten VI. Klassen en objecten Klassen en objecten vormen het fundament van OOP. We zullen dus uitgebreid aandacht besteden aan klassen en objecten. U kunt Java niet begrijpen zonder goed met klassen en objecten

Nadere informatie

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

Informatica. Objectgeörienteerd leren programmeren. Van de theorie met BlueJ tot een spelletje met Greenfoot... Bert Van den Abbeele Informatica Objectgeörienteerd leren programmeren Van de theorie met BlueJ tot een spelletje met Greenfoot... Bert Van den Abbeele http://creativecommons.org/licenses/by-nc-nd/3.0/legalcode Objectgeörienteerd

Nadere informatie

Modelleren en Programmeren

Modelleren en Programmeren Modelleren en Programmeren Jeroen Bransen 9 december 2015 Foreach String arrays Boomstructuren Interfaces Ingebouwde datastructuren Quiz Foreach Foreach Speciale versie van for om iets voor alle elementen

Nadere informatie

sheets Programmeren 2 Java Recursie, de muis en graphics Walter Kosters http://www.liacs.nl/home/kosters/java/

sheets Programmeren 2 Java Recursie, de muis en graphics Walter Kosters http://www.liacs.nl/home/kosters/java/ sheets Programmeren 2 Java Recursie, de muis en graphics Walter Kosters http://www.liacs.nl/home/kosters/java/ 1 Java intro Voorkennis: dat wat bij het college Programmeren 1 over Java behandeld is; zie

Nadere informatie

Game of Life in Java

Game of Life in Java Game of Life in Java Auteur: drs. M.S.L.F. Manssen http://www.manssen.eu Game of Life is een spel van een rooster van cellen, waarbij telkens een ronde gebeurt waarbij de nieuwe waardes van cellen gebeurt.

Nadere informatie

Tentamen Inleiding Programmeren in Java

Tentamen Inleiding Programmeren in Java Tentamen Inleiding Programmeren in Java Vakcode: 2lI0L7 Datum: 4 februari 2005 Tijd: 13.30-17.00 uur Algemeen: Dit tentamen bestaat uit 4 opgaven, waarvoor in totaal 100 punten verdiend kunnen worden.

Nadere informatie

Programmeren I. 26 augustus Algemene Richtlijnen. Richtlijnen Programmeren 1

Programmeren I. 26 augustus Algemene Richtlijnen. Richtlijnen Programmeren 1 Algemene Richtlijnen Programmeren I 26 augustus 2015 Schrijf je naam bovenaan elk antwoordblad en kladblad. Schrijf niet met potlood of in het rood op je antwoordbladen. Gebruik voor elke vraag een afzonderlijk

Nadere informatie

Versie 2: B C D D A C D A C C. Versie 3: C D A A B D A B D D. Versie 4: A D C C B D C B D D. Versie 5: B A D D C A D C A A

Versie 2: B C D D A C D A C C. Versie 3: C D A A B D A B D D. Versie 4: A D C C B D C B D D. Versie 5: B A D D C A D C A A Uitwerking Tweede deeltentamen Mobiel programmeren - versie 1 Vrijdag 1 februari 2019, 11.00 13.00 uur Voor de meerkeuzevragen hebben we verschillende versies. Dit zijn de juiste antwoorden per versie.

Nadere informatie

Veel succes! 1. Deze opgave bestaat uit een aantal deelvragen. Houd het antwoord kort: één of twee zinnen per onderdeel kan al genoeg zijn.

Veel succes! 1. Deze opgave bestaat uit een aantal deelvragen. Houd het antwoord kort: één of twee zinnen per onderdeel kan al genoeg zijn. Tweede deeltentamen Gameprogrammeren Vrijdag 18 oktober 2013, 11.00-13.00 uur Naam: Studentnummer: Het tentamen bestaat uit 3 opgaven. Opgaven 1 levert 10 punten op, opgave 2 levert 6 punten op, en opgave

Nadere informatie

Modelleren en Programmeren

Modelleren en Programmeren Modelleren en Programmeren Jeroen Bransen 18 december 2015 Overerving (inheritance) Constructors Overriding Inheritance demo Exceptions Zelf exceptions veroorzaken Overerving (inheritance) 2-dimensionaal

Nadere informatie

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

Visual Basic.NET. Visual Basic.NET. M. den Besten 0.3 VB. NET Visual Basic.NET M. den Besten 0.3 VB. NET Inhoud Voorwoord Deel 1 Visual Basic.NET 1.1 Inleiding...13 1.2 De programmeertaal Visual Basic.NET...14 1.3 Microsoft Visual Basic 2010 Express Edition...15

Nadere informatie

Klassen. Hoofdstuk Klassen

Klassen. Hoofdstuk Klassen 212 Hoofdstuk 12 Klassen blz. 213 blz. 214 12.1 Klassen Een klasse is een groepje methoden. Dat hebben we in de programma s tot nu toe wel gezien: we definieerden steeds een of meerdere klassen (in ieder

Nadere informatie

Opdracht 7a. Applicatiebouw 2014/2015

Opdracht 7a. Applicatiebouw 2014/2015 Applicatiebouw 2014/2015 Opdracht 7a Inhoud Applicatiebouw op dag 7 College In het college wordt oa. overerving behandeld, waarmee je uit een bestaande klasse een nieuwe andere klasse kan maken. Ook zijn

Nadere informatie

Uitwerking Tweede deeltentamen Imperatief programmeren - versie 1 Vrijdag 21 oktober 2016, uur

Uitwerking Tweede deeltentamen Imperatief programmeren - versie 1 Vrijdag 21 oktober 2016, uur Uitwerking Tweede deeltentamen Imperatief programmeren - versie 1 Vrijdag 21 oktober 2016, 13.00-15.00 uur 1. De situatie die ontstaat door class A : B C D; kan beschreven worden door (a) B is een A (b)

Nadere informatie

Beginselen van programmeren Practicum 1 (Doolhof) : Oplossing

Beginselen van programmeren Practicum 1 (Doolhof) : Oplossing Beginselen van programmeren Practicum 1 (Doolhof) : Oplossing Introductie In dit document geven we een mogelijke oplossing voor het eerste practicum. Deze oplossing gebruikt verschillende klassen en overerving,

Nadere informatie

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

In de tweede regel plaatsen we in het gereserveerde stukje geheugen een getal. 4. Array s Een array is een geïndexeerde variabele. Deze zin zal de nodig vragen oproepen, waarop enige uitleg van toepassing is. Met variabelen hebben we al kennis gemaakt. In een variabele kun je iets

Nadere informatie

BEGINNER JAVA Inhoudsopgave

BEGINNER JAVA Inhoudsopgave Inhoudsopgave 6 Configuratie Hallo wereld! Praten met de gebruiker Munt opgooien Voorwaarden Lussen......6 Configuratie Met deze Sushi kaarten ga je een simpel spel maken met één van de meest populaire

Nadere informatie

Overerving & Polymorfisme

Overerving & Polymorfisme Overerving & Polymorfisme Overerving Sommige klassen zijn speciaal geval van andere klasse Docent is een speciaal geval van werknemer, dwz. elke docent is ook werknemer Functionaliteit van docent = functionaliteit

Nadere informatie

Programmeren in C++ Efficiënte zoekfunctie in een boek

Programmeren in C++ Efficiënte zoekfunctie in een boek Examen Software Ontwikkeling I 2e Bachelor Informatica Faculteit Wetenschappen Academiejaar 2010-2011 21 januari, 2011 **BELANGRIJK** 1. Lees eerst de volledige opgave (inclusief de hints/opmerkingen)!

Nadere informatie

HOOFDSTUK 3. Imperatief programmeren. 3.1 Stapsgewijs programmeren. 3.2 If Then Else. Module 4 Programmeren

HOOFDSTUK 3. Imperatief programmeren. 3.1 Stapsgewijs programmeren. 3.2 If Then Else. Module 4 Programmeren HOOFDSTUK 3 3.1 Stapsgewijs programmeren De programmeertalen die tot nu toe genoemd zijn, zijn imperatieve of procedurele programmeertalen. is het stapsgewijs in code omschrijven wat een programma moet

Nadere informatie

APPLICATIEBOUW 2E COLLEGE: ONTWERPEN, GEBRUIKERSINTERFACES, VARIABELEN & EXPRESSIES. Onderdeel van SmartProducts

APPLICATIEBOUW 2E COLLEGE: ONTWERPEN, GEBRUIKERSINTERFACES, VARIABELEN & EXPRESSIES. Onderdeel van SmartProducts APPLICATIEBOUW 2E COLLEGE: ONTWERPEN, GEBRUIKERSINTERFACES, VARIABELEN & EXPRESSIES Onderdeel van SmartProducts INHOUD COLLEGE 2 module4.io.utwente.nl/applicatiebouw Software ontwerpen Gebruikersinterfaces,

Nadere informatie

Java. Basissyllabus. Egon Pas

Java. Basissyllabus. Egon Pas Java Basissyllabus Egon Pas 2011 BeanPole bvba Gasmeterlaan 92-9000 Gent BTW BE 472.902.516 Tel: + 32 9 224 42 17 Fax: + 32 9 223 62 88 www.beanpole.be info@beanpole.be 1 Programmeren 1.1 Hoe werkt een

Nadere informatie

rd 2005 Elektronische uitgave 2006 Java 1

rd 2005 Elektronische uitgave 2006 Java 1 2005 Elektronische uitgave 2006 Java 1 INTRODUCTIE 3 HOOFDSTUK 1 HET ONTSTAAN 4 HOOFDSTUK 2.ONS EERSTE APPLET 6 HOOFDSTUK 3 TEKENEN MET JAVA 8 HOOFDSTUK 4 KLASSEN EN OBJECTEN 12 HOOFDSTUK 5 VARIABELEN

Nadere informatie

Stacks and queues. Hoofdstuk 6

Stacks and queues. Hoofdstuk 6 Hoofdstuk 6 Stacks and queues I N T R O D U C T I E In dit hoofdstuk worden drie datastructuren stack, queue en deque behandeld. Om deze datastructuren te implementeren, worden onder andere arrays en linked

Nadere informatie

HvA Instituut voor Interactieve Media ActionScript 3.0

HvA Instituut voor Interactieve Media ActionScript 3.0 PPRO 1: OEFENINGEN LES 1 Hierbij de werkgroepoefeningen behorend bij het practicum week 1. Lees de stukken uitleg aandachtig door, zonder deze informatie zullen de principes in de oefeningen moeilijk te

Nadere informatie

Inhoud leereenheid 7c. JavaScript: Objecten en functies. Introductie 59. Leerkern 60. Samenvatting 82. Opdrachten 83. Zelftoets 89.

Inhoud leereenheid 7c. JavaScript: Objecten en functies. Introductie 59. Leerkern 60. Samenvatting 82. Opdrachten 83. Zelftoets 89. Inhoud leereenheid 7c JavaScript: Objecten en functies Introductie 59 Leerkern 60 1 Functies 60 1.1 Syntax - samenvatting 60 1.2 Functies definiëren 61 1.3 Functie als parameter (facultatief) 64 1.4 Functie

Nadere informatie

APPLICATIEBOUW 3E COLLEGE: OBJECT GEORIËNTEERD PROGRAMMEREN, METHODEN, PARAMETERS, SCOPE VAN VARIABELEN. Onderdeel van SmartProducts

APPLICATIEBOUW 3E COLLEGE: OBJECT GEORIËNTEERD PROGRAMMEREN, METHODEN, PARAMETERS, SCOPE VAN VARIABELEN. Onderdeel van SmartProducts APPLICATIEBOUW 3E COLLEGE: OBJECT GEORIËNTEERD PROGRAMMEREN, METHODEN, PARAMETERS, SCOPE VAN VARIABELEN Onderdeel van SmartProducts INHOUD COLLEGE 3 Software specificaties (DPU1) Object georiënteerd programmeren,

Nadere informatie

NAAM: Programmeren 1 Examen 29/08/2012

NAAM: Programmeren 1 Examen 29/08/2012 Programmeren 29 augustus 202 Prof. T. Schrijvers Instructies Schrijf al je antwoorden op deze vragenbladen (op de plaats die daarvoor is voorzien). Geef ook je kladbladen af. Bij heel wat vragen moet je

Nadere informatie

Programmeren in Java 3

Programmeren in Java 3 7 maart 2010 Deze les Zelf componenten maken Concurrency (multithreading): werken met threads levenscyclus van een thread starten tijdelijk onderbreken wachten stoppen Zelf componenten maken Je eigen component:

Nadere informatie

Programmeren in C# Interfaces. Hoofdstuk 23

Programmeren in C# Interfaces. Hoofdstuk 23 Programmeren in C# Interfaces Hoofdstuk 23 Programmeren in C# 2 Gradaties overerving Klassieke overerving Iets functioneels uitbreiden Code duplicatie Niet teveel aanpassingen aan bestaande code Objecten

Nadere informatie

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

Verder zijn er de nodige websites waarbij voorbeelden van objectgeoriënteerd PHP (of Objec Oriented PHP, OO PHP) te vinden zijn. Objectgeoriënteerd PHP (versie 5) Kennisvereisten: Ervaring met programmeren in PHP met MySQL Je weet wat een class of klasse is Je weet wat een instantie van een klasse (een object) is Je weet wat een

Nadere informatie

Programmeren in Java 3

Programmeren in Java 3 2 september 2007 voor deeltijdstudenten Kop van Zuid Rotterdam, 3 juni 2007 Even voorstellen Naam: Wessel Oele(31) Docent bij opleiding technische informatica Kamer: I210 (tweede verdieping, links de gang

Nadere informatie

Small Basic Programmeren Text Console 2

Small Basic Programmeren Text Console 2 Oefening 1: Hoogste getal Je leest een reeks positieve gehele getallen in totdat je het getal 0 (nul) invoert. Daarna stopt de invoer en druk je een regel af met het hoogste getal uit de reeks. Voorbeeld:

Nadere informatie

Deeltentamen Grammatica s en ontleden 22 december 2005

Deeltentamen Grammatica s en ontleden 22 december 2005 Tentamen Grammatica s en ontleden 22 december 2005 1 Deeltentamen Grammatica s en ontleden 22 december 2005 Let op: opgave 1 t/m 4 tellen voor (slechts) 5 punten mee, opgave 5 voor maar liefst 50 punten,

Nadere informatie

Zelftest Programmeren in Java

Zelftest Programmeren in Java Zelftest Programmeren in Java Document: n0883test.fm 22/01/2013 ABIS Training & Consulting P.O. Box 220 B-3000 Leuven Belgium TRAINING & CONSULTING INLEIDING BIJ DE ZELFTEST PROGRAMMEREN IN JAVA Deze test

Nadere informatie

Dynamisch Programmeren. Het Rugzakprobleem

Dynamisch Programmeren. Het Rugzakprobleem INLEIDING Dynamisch Programmeren 1 Dynamisch Programmeren Section Page Inleiding................................................. 1 1 Oplossing................................................ 2 2 Subprobleem.............................................

Nadere informatie

Een eerste applicatie

Een eerste applicatie Een eerste applicatie 2.1 Inleiding Programmeren in Visual Basic.NET doe je niet alleen door regels met code te schrijven. Je begint met het ontwerpen van een venster in de design mode met allerlei controls,

Nadere informatie

10 Meer over functies

10 Meer over functies 10 Meer over functies In hoofdstuk 5 hebben we functies uitgebreid bestudeerd. In dit hoofdstuk bekijken we drie andere aspecten van functies: recursieve functies dat wil zeggen, functies die zichzelf

Nadere informatie

Veel succes! 1. Gegeven is de volgende klasse:

Veel succes! 1. Gegeven is de volgende klasse: Dit tentamen is in elektronische vorm beschikbaar gemaakt door de TBC van A Eskwadraat. A Eskwadraat kan niet aansprakelijk worden gesteld voor de gevolgen van eventuele fouten in dit tentamen. Derde deeltentamen

Nadere informatie

public boolean equaldates() post: returns true iff there if the list contains at least two BirthDay objects with the same daynumber

public boolean equaldates() post: returns true iff there if the list contains at least two BirthDay objects with the same daynumber Tentamen TI1310 Datastructuren en Algoritmen, 15 april 2011, 9.00-12.00 TU Delft, Faculteit EWI, Basiseenheid Software Engineering Bij het tentamen mag alleen de boeken van Goodrich en Tamassia worden

Nadere informatie

Hoofdstuk 5: Functies voor getallen en teksten

Hoofdstuk 5: Functies voor getallen en teksten Programmeren in Microsoft Visual Basic 6.0, lessenserie voor het voortgezet onderwijs HAVO/VWO David Lans, Emmauscollege, Marnix Gymnasium Rotterdam, maart 2001 Hoofdstuk 5: Functies voor getallen en teksten

Nadere informatie

www.digitalecomputercursus.nl 6. Reeksen

www.digitalecomputercursus.nl 6. Reeksen 6. Reeksen Excel kan datums automatisch uitbreiden tot een reeks. Dit betekent dat u na het typen van een maand Excel de opdracht kan geven om de volgende maanden aan te vullen. Deze voorziening bespaart

Nadere informatie

Hoofdstuk 1: Inleiding. Hoofdstuk 2: Klassen en objecten Datahiding: afschermen van implementatiedetails. Naar de buitenwereld toe enkel interfaces.

Hoofdstuk 1: Inleiding. Hoofdstuk 2: Klassen en objecten Datahiding: afschermen van implementatiedetails. Naar de buitenwereld toe enkel interfaces. Hoofdstuk 1: Inleiding Objectoriëntatie: 1. Objecten & klassen: samenwerking van componenten om bepaald doel te bereiken; herbruikbaarheid. 2. Encapsulation: afschermen gedragingen en kenmerken van de

Nadere informatie

Java spiekbrief. Commentaar. Definitie van een methode. Types. Variabelendeclaratie. Definitie van een klasse. Namen. Definitie van een veld

Java spiekbrief. Commentaar. Definitie van een methode. Types. Variabelendeclaratie. Definitie van een klasse. Namen. Definitie van een veld Java spiekbrief Commentaar Dient enkel voor de menselijke lezer. // tot het einde van de lijn /* Dit type commentaar kan gerust meerdere lijnen beslaan. */ /** En deze speciale vorm wordt gebruikt voor

Nadere informatie

Beschrijving JabberPoint met inwerkopdracht (versie 1.6)

Beschrijving JabberPoint met inwerkopdracht (versie 1.6) Open Universiteit Design patterns Casus eindopdracht Beschrijving JabberPoint met inwerkopdracht (versie 1.6) 1 Algemeen overzicht JabberPoint ondersteunt het tonen van presentaties die worden ingelezen

Nadere informatie

Hoofdstuk 6: Zelf functies maken

Hoofdstuk 6: Zelf functies maken Programmeren in Microsoft Visual Basic 6.0, lessenserie voor het voortgezet onderwijs HAVO/VWO David Lans, Emmauscollege, Marnix Gymnasium Rotterdam, januari 2004 Hoofdstuk 6: Zelf functies maken 6.0 Leerdoel

Nadere informatie

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

Als een PSD selecties bevat, deelt de lijn van het programma zich op met de verschillende antwoorden op het vraagstuk. HOOFDSTUK 3 3.1 Stapsgewijs programmeren In de vorige hoofdstukken zijn programmeertalen beschreven die imperatief zijn. is het stapsgewijs in code omschrijven wat een programma moet doen, net als een

Nadere informatie

Een gelinkte lijst in C#

Een gelinkte lijst in C# Een gelinkte lijst in C# In deze tutorial ga demonstreren hoe je een gelinkte lijst kan opstellen in C#. We gaan een klasse schrijven, die een gelijkaardige functionaliteit heeft als een ArrayList, namelijk

Nadere informatie

Numerieke benadering van vierkantwortels

Numerieke benadering van vierkantwortels HP Prime Grafische Rekenmachine Numerieke benadering van vierkantwortels Doel: De waarde van een vierkantswortel met een recursieve rij benaderen, het schrijven van een klein programma. Sleutelwoorden:

Nadere informatie

Objectgeoriënteerd Programmeren: WPO 2a

Objectgeoriënteerd Programmeren: WPO 2a Objectgeoriënteerd Programmeren: WPO 2a 1. Inhoud Eenvoudige (enkelvoudige) overerving, override, ToString(), base, private, public, protected, virtual 2. Inleiding 2.1 Overerving In het voorgaande WPO

Nadere informatie

Handleiding Joomla CMS

Handleiding Joomla CMS Handleiding Joomla CMS Inhoudsopgave Inloggen bij de beheeromgeving 3 Artikelen 4 Prullenbak bekijken 4 Nieuw artikel maken / bewerken 5 Afbeelding toevoegen aan artikel 6 Link in een artikel plaatsen

Nadere informatie