Design patterns.

Maat: px
Weergave met pagina beginnen:

Download "Design patterns."

Transcriptie

1 Design patterns

2 Wat zijn dat? Programma zit niet goed in elkaar Zondigt tegen ontwerpprincipes En dat zorgt voor probleem Ontwerppatroon: standaard oplossing voor een bepaald soort van dergelijke problemen

3 Voorbeeld Dit is een ingewikkelde methode, die afhangt van Motor Wijziging aan Motor -> Sensor aanpassen Sensor kan niet herbruikt worden voor andere apparatuur Geen hergebruik als Motor wordt aangedreven door iets anders dan Sensor

4 Command patroon Motor en Sensor zijn losgekoppeld Complexiteit verschuift naar initializatie

5 Voorbeeld van init class Controller { public void init() { Motor m = new Motor(); Command ju = new VersnelCommando(m); Command how = new VertraagCommando(m); Sensor s = new Sensor(); s.setvertraagcommand(how); s.setversnelcommand(ju);

6 Andere voordelen In wachtrij steken Ongedaan maken Valideren validate()

7 Active Object Voorbeeld

8 import java.util.*; public class PersoneelSorteerder { public List<Werknemer> lijst; public PersoneelSorteerder(List<Werknemer> l) { lijst = l; public void sorteer() { boolean gesorteerd = false; while (!gesorteerd) { gesorteerd = true; for (int i = 0; i < lijst.size() - 1; i ++) { if (lijst.get(i).getleeftijd() > lijst.get(i+1).getleeftijd()) { verwissel(i,i+1); gesorteerd = false; private void verwissel(int i, int j) { Werknemer tmp = lijst.get(i); lijst.set(i, lijst.get(j)); lijst.set(j, tmp);

9 Template patroon Nadeel: overerving is sterke relatie Vergelijkingsfunctie kan niet herbruikt worden in andere sorteeralgoritmes

10 Strategy

11 Facade

12 Mediator Facade: zichtbare implementatie van beleid over gebruik van klassen Mediator: invloed achter de schermen Vb: QuickEntryMediator

13 Singleton Kan een applicatie meerdere ProduktDatabank objecten maken? Kan een applicatie meerdere Controller objecten maken?

14 Singleton public class Singleton { private Singleton() { private static Singleton instance; public static Singleton getinstance() { if (instance == null) instance = new Singleton(); return instance;

15 Voordelen Kan voor elke klasse Kan door overerving: class BlaSingleton extends Bla Lazy evaluation: pas aangemaakt als nodig

16 Nadelen Niet transparent: gebruikers moeten weten dat het Singleton is Kan niet worden overgeerfd class Bla extends Singleton Efficientie: elke getinstance() heeft if

17 Monostate Alle variabelen statisch Geen methoden statisch Effect: alle instances zijn hetzelfde

18 Voordelen Transparant Kan worden overgeerfd: subklasses hebben dezelfde statische variabelen

19 Nadelen Niet door overeving: class Monostate extends Bla Efficientie: elk Monostate object moet worden aangemaakt, en statische variabelen zijn er altijd

20 Null object Werknemer w = getwerknemer(naam); if (w!= null && w.isbetaaldag(vandaag)) w.betaal(); Werknemer w = getwerknemer(naam); try { if (w.isbetaaldag(vandaag)) w.betaal(); catch (NullPointerException n) { //...

21 Null object class NullWerknemer extends Werknemer { public boolean isbetaaldag() { return false; public void betaal() { Werknemer w = getwerknemer(naam); if (w.isbetaaldag(vandaag)) w.betaal();

22 Uniek null object class NullWerknemer extends Werknemer { private NullWerknemer() { private static NullWerknemer instance; public static NullWerknemer getinstance() { if (instance == nul) instance = new Singleton(); return instance; public boolean isbetaaldag() { return false; public void betaal() { if (getwerknemer(naam) == NullWerknemer.getInstance()) //...

23 Of nog beter public abstract class Werknemer { public static final Werknemer NULL = new Werknemer() { public boolean isbetaaldag() { return false; public void betaal() { ; if (getwerknemer(naam) == Werknemer.NULL) //...

24 Factory of toch niet? Vorm v = new Cirkel(5);

25 Factory Wordt ergens in de initializatie aangemaakt Bij toevoegen van nieuwe vorm, moet interface veranderen Wijzigingen hebben geen effect meer

26 Alternatief Nadeel: typfouten in naam van vorm, leiden nu tot runtime ipv. compile time errors

27 Meer flexibiliteit SAXParser parser = SAXParserFactory.newInstance().newSAXParser();

28 Composite Alle elementen van samengesteld object moeten identiek behandeld worden Voordeel: clienten hoeven niet te sukkelen met lijsten, enkel het samengesteld object doet dat

29 Observer

30 Observer Pull model: Er is iets veranderd, kijk zelf maar Standaard klassen Uitvissen wat veranderd is kan veel werk zijn Push model: Dit is veranderd

31 Proxy + SQL

32 Proxy

33 Proxy return new DBProdukt(new ProduktImpl());

34 Proxy

35 Visitor Je moet een nieuwe methode toevoegen aan een klassehierarchie, maar dit is pijnlijk of schadelijk voor het ontwerp + configureforunix()

36 Visitor public void ontvang(modembezoeker bezoeker) { bezoeker.bezoek(this);

37 Matrix: [Modem,OS] Visitor

38 Visitor Toepassing: rapportering lokaaloverzicht docentenoverzicht studiegroepoverzicht

39 Visitor

40 Decorator

41 Decorator

42 Decorator public class Decorator { public Decorator(Venster a) { achterliggend = a; private Venster achterliggend; public void paintcomponent(graphics g) { achterliggend.paintcomponent(g); //... Venster v = new HorizontalScrollbarDecorator( new VerticalScrollbarDecorator( new BorderDecorator(new VensterImpl())));

Design principes.

Design principes. Design principes joost.vennekens@kuleuven.be Doelstelling Code die werkt doet wat klant wil betrouwbaar is gemakkelijk te veranderen is En dit ook blijft doen Software rot Rottende software geeft geurtjes

Nadere informatie

Design principes.

Design principes. Design principes joost.vennekens@kuleuven.be Motivatie Software projecten mislukken vaker Vaker dan bouwkunde Vaker dan EM Vaker dan Oorzaak? Omgaan met verandering Vereisten Technologie Externe systemen

Nadere informatie

1 Ontwerppatronen. 1.1 Het Command patroon

1 Ontwerppatronen. 1.1 Het Command patroon 1 Ontwerppatronen Software-ontwikkelaars worden geconfronteerd met ontwerpproblemen: de manier waarop ze hun programma gestructureerd hebben geeft aanleiding tot slechte eigenschappen zoals rigiteit, fragiliteit,....

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

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

Abstracte klassen & Interfaces

Abstracte klassen & Interfaces Abstracte klassen & Interfaces Overerving public class Vierhoek {... Vierhoek public class Rechthoek extends Vierhoek {... public class Ruit extends Vierhoek {... Rechthoek Ruit Elke rechthoek is een vierhoek.

Nadere informatie

Design patterns Startbijeenkomst

Design patterns Startbijeenkomst Design patterns Startbijeenkomst Harrie Passier Docenten Sylvia Stuurman (1 e examinator) Sylvia.Stuurman@ou.nl Harrie Passier (2 e examinator) Harrie.Passier@ou.nl Aarzel niet vragen te stellen! Rooster

Nadere informatie

Ingebouwde klassen & methodes

Ingebouwde klassen & methodes Ingebouwde klassen & methodes Statische methodes Methodes die bij een klasse horen ipv. bij een object public class Docent { public static Docent departementshoofd() { return new Docent("Jan Ivens"); private

Nadere informatie

Tentamen Object Georiënteerd Programmeren TI1206 29 oktober 2014, 9.00-11.00 Afdeling SCT, Faculteit EWI, TU Delft

Tentamen Object Georiënteerd Programmeren TI1206 29 oktober 2014, 9.00-11.00 Afdeling SCT, Faculteit EWI, TU Delft Tentamen Object Georiënteerd Programmeren TI1206 29 oktober 2014, 9.00-11.00 Afdeling SCT, Faculteit EWI, TU Delft Bij dit tentamen mag je geen gebruik maken van hulpmiddelen zoals boek of slides. Digitale

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

OBJECT SPAGHETTI : PATTERNS BIEDEN UITKOMST? Wat is het probleem nou eigenlijk? public class CoffeeDrinker { private CoffeeProducer mycoffeeproducer;

OBJECT SPAGHETTI : PATTERNS BIEDEN UITKOMST? Wat is het probleem nou eigenlijk? public class CoffeeDrinker { private CoffeeProducer mycoffeeproducer; OBJECT SPAGHETTI : PATTERNS BIEDEN UITKOMST? Object georiënteerde (OO) systemen kennen vele voordelen ten opzichte van traditionele procedurele systemen. Zo zouden OO systemen flexibeler en beter onderhoudbaar

Nadere informatie

Ontwerp van Informatiesystemen

Ontwerp van Informatiesystemen 1ste bach HIB Ontwerp van Informatiesystemen Prof. Verelst Q www.quickprinter.be uickprinter Koningstraat 13 2000 Antwerpen 112 2,50 Online samenvattingen kopen via www.quickprintershop.be Table of Contents

Nadere informatie

Kwis (3) class X { public void a() { System.out.println("x"); public static void main(string[] args) { X x = new X();

Kwis (3) class X { public void a() { System.out.println(x); public static void main(string[] args) { X x = new X(); Kwis (3) class X { public void a() { System.out.println("x"); class Y extends X { public void a() { System.out.println("y"); class Z extends Y { public void a() { System.out.println("z"); public static

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

Tentamen in2705 Software Engineering

Tentamen in2705 Software Engineering Tentamen in2705 Software Engineering Voorbeeld (bijna tweemaal te groot) U mag meenemen naar dit tentamen: Lethbridge, afdrukken PPT slides, afdrukken handouts. 1. De TU wil een nieuw systeem ontwikkelen

Nadere informatie

DIAGNOSTISCHE TOETS Softwaresystemen UITWERKING

DIAGNOSTISCHE TOETS Softwaresystemen UITWERKING DIAGNOSTISCHE TOETS Softwaresystemen datum: Donderdag van Week 7 UITWERKING Deze diagnostische toets bevat vragen over excepties en concurrency. Beantwoord de vragen zo goed mogelijk in 30 minuten Bespreek

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

Object Oriented Programming

Object Oriented Programming Object Oriented Programming voor webapplicaties Door Edwin Vlieg Waarom OOP? Basis uitleg over OOP Design Patterns ActiveRecord Model View Controller Extra informatie Vragen OOP Object Oriented Programming

Nadere informatie

Programmeren 1 20 januari 2012 Prof. T. Schrijvers

Programmeren 1 20 januari 2012 Prof. T. Schrijvers Programmeren 1 20 januari 2012 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

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

NAAM: Programmeren 1 Examen 21/01/2011

NAAM: Programmeren 1 Examen 21/01/2011 Programmeren 1 21 januari 2011 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

Nadere informatie

Objectgericht programmeren 1.

Objectgericht programmeren 1. Objectgericht programmeren 1 joost.vennekens@kuleuven.be http://www.cs.kuleuven.be/~joost/dn Objectgericht ontwerpen 35% Objectgericht ontwerpen 65% OP1 Informatiesystemen 50% Databanken 50% OP1 Evaluatie

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

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

Lessen Java: Reeks 3. David Blinder Jan G. Cornelis

Lessen Java: Reeks 3. David Blinder Jan G. Cornelis Lessen Java: Reeks 3 David Blinder Jan G. Cornelis Vraag 0: Gebruik van de Debugger Syntax errors: fouten door verkeerd gebruik van Javacommandos code zal niet compileren. Locatie van de fout is bijna

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

Een fragment wordt afgeleid van de basis klasse "Fragment".

Een fragment wordt afgeleid van de basis klasse Fragment. Android fragmenten 1/5 Fragmenten Klasse Een fragment wordt afgeleid van de basis klasse "Fragment". package com.android.cursustekst; import java.text.simpledateformat; import java.util.arraylist; import

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

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

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

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

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

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 Imperatief Programmeren

Tentamen Imperatief Programmeren Tentamen Imperatief Programmeren Maandag 22 oktober 2001 Toelichting Dit is een open boek tentamen, d.w.z. het cursusboek mag gebruikt worden. N.B.: Het tentamen is individueel: voor het maken van de opgaven

Nadere informatie

Datastructuren en algoritmen

Datastructuren en algoritmen Datastructuren en algoritmen Doelstelling Datastructures + algorithms = programs Boek van Niklaus Wirth: bedenker Pascal en Modula Datastructuur: structuur om informatie op te slaan Algoritme: voorschrift

Nadere informatie

ASP.NET Test 2009-2010. Jan Van Ryckeghem

ASP.NET Test 2009-2010. Jan Van Ryckeghem ASP.NET Test 2009-2010 Jan Van Ryckeghem Inhoud Exceptionhandling H4... 3 Try Catch slide 25... 3 Error pagina slide 29... 3 Error.aspx... 3 Error.aspx.cs... 4 Web.config... 4 Logbestand aanmaken... 4

Nadere informatie

Scala. Korte introductie. Sylvia Stuurman

Scala. Korte introductie. Sylvia Stuurman Korte introductie Sylvia Stuurman Wat is er zo bijzonder aan? Schaalbaar Objectgeoriënteerd (handiger dan Java!) Functioneel Scripts schrijven Gecompileerd: Java bytecode Pagina 2 voor scripts Pagina 3

Nadere informatie

Objectgericht programmeren 1.

Objectgericht programmeren 1. Objectgericht programmeren 1 joost.vennekens@kuleuven.be http://www.cs.kuleuven.be/~joost/dn Objectgericht ontwerpen 35% Objectgericht ontwerpen 65% OP1 Informatiesystemen 50% Databanken 50% OP1 Evaluatie

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

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

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

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

Object Oriented Ontwerp. Yannick Reekmans

Object Oriented Ontwerp. Yannick Reekmans Yannick Reekmans 2008-2009 22 september 2008 Head First Java (hfstk. 6 blz. 125-164): Arrays & ArrayList; DotComBust game code nakijken Head First Java (hfstk. 10 blz. 302-306): Working with dates Head

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

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

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

Aanvullende toets Gameprogrammeren (INFOB1GP) Woensdag 24 december 2014, uur

Aanvullende toets Gameprogrammeren (INFOB1GP) Woensdag 24 december 2014, uur Aanvullende toets Gameprogrammeren (INFOB1GP) Woensdag 24 december 2014, 13.30-15.30 uur Naam: Studentnummer: Het tentamen bestaat uit 4 opgaven. Opgaven 1 levert 8 punten op, opgave 2 levert 12 punten

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

Uitwerkingen derde deeltentamen Gameprogrammeren Vrijdag 6 november 2015, uur

Uitwerkingen derde deeltentamen Gameprogrammeren Vrijdag 6 november 2015, uur Uitwerkingen derde deeltentamen Gameprogrammeren Vrijdag 6 november 2015, 11.00-13.00 uur 1. Deze opgave bestaat uit een aantal deelvragen. Houd het antwoord kort: één of twee zinnen per onderdeel kan

Nadere informatie

TENTAMEN Programmeren 1 VOORBEELDUITWERKING

TENTAMEN Programmeren 1 VOORBEELDUITWERKING TENTAMEN Programmeren 1 vakcode: 213500 datum: 10 juli 2004 tijd: 9:00-12:30 uur VOORBEELDUITWERKING Algemeen Bij dit tentamen mag gebruik worden gemaakt van het boek van Niño/Hosch, en van de handleiding

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

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

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

SPOJ oplossingen Gilles Callebaut 7 augustus 2015

SPOJ oplossingen Gilles Callebaut 7 augustus 2015 SPOJ oplossingen 2012-2013 Gilles Callebaut 7 augustus 2015 DISCLAIMER Oefeningen zijn niet altijd correct of optimaal. Gelieve de oefeningen enkel te gebruiken ter ondersteuning. Van kopiëren leer je

Nadere informatie

Vraag 1: Software Levenscyclus

Vraag 1: Software Levenscyclus EXAMEN SOFTWAREONTWIKKELING II 2 DE BA. INFORMATICA EERSTE EXAMENPERIODE ACADEMIEJAAR 2012 2013, SESSIE 1 Vrijdag 7 juni, 2012, 8u30 Naam : Opmerkingen vooraf (i) (ii) Je wordt niet verondersteld de Java-API

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

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

Project network. Gebaseerd op paragrafen , uit het boek. We simuleren een sociaal netwerk Project network Gebaseerd op paragrafen 10.1-10.7, 11.1-11.6 uit het boek. We simuleren een sociaal netwerk Er zijn twee soorten berichten: tekstberichten en fotoberichten,... voorgesteld door de klassen

Nadere informatie

Java Programma structuur

Java Programma structuur Java Programma structuur public class Bla // div. statements public static void main(string argv[]) // meer spul Voortgezet Prog. voor KI, week 4:11 november 2002 1 Lijsten Voorbeelden 2, 3, 5, 7, 13 Jan,

Nadere informatie

De Vergeten Abstracties

De Vergeten Abstracties De Vergeten Abstracties Cesario Ramos Senior Consultant bij Xebia B.V. 2009 Inleiding Rollen zijn een belangrijk concept in object georiënteerde software ontwikkeling dat vaak vergeten wordt. Het gebruik

Nadere informatie

Programmeren 1 23 januari 2013 Prof. T. Schrijvers

Programmeren 1 23 januari 2013 Prof. T. Schrijvers Programmeren 1 23 januari 2013 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

Nadere informatie

Unit testen van EJB's. Koert Zeilstra - iprofs

Unit testen van EJB's. Koert Zeilstra - iprofs Unit testen van EJB's Koert Zeilstra - iprofs Inleiding We weten tegenwoordig allemaal dat we ons product moeten testen om de kwaliteit te verhogen en behouden Software-ontwikkelaars zijn over het algemeen

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

TENTAMEN Programmeren 1 VOORBEELDUITWERKING

TENTAMEN Programmeren 1 VOORBEELDUITWERKING TENTAMEN Programmeren 1 vakcode: 213500 datum: 28 november 2002 tijd: 13:30 17:00 uur VOORBEELDUITWERKING Algemeen Bij dit tentamen mag gebruik worden gemaakt van het boek van Niño/Hosch, en van de handleiding

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

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

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

Wiskundige Analyse I. Hoofdstuk 1. Vraag 1.1 Het beginvoorwaardenprobleem. x 2 y + xy + x 2 y = 0, y(0+) = 1, y (0+) = 0. bezit een unieke oplossing.

Wiskundige Analyse I. Hoofdstuk 1. Vraag 1.1 Het beginvoorwaardenprobleem. x 2 y + xy + x 2 y = 0, y(0+) = 1, y (0+) = 0. bezit een unieke oplossing. Hoofdstuk 1 Wiskundige Analyse I Vraag 1.1 Het beginvoordenprobleem x 2 y + xy + y = 0, y(0+) = 1, y (0+) = 0 bezit een unieke oplossing. vals Vraag 1.2 Het beginvoordenprobleem x 2 y + xy + x 2 y = 0,

Nadere informatie

Deel 1 : Gesloten Boek

Deel 1 : Gesloten Boek Naam : EXAMEN SOFTWAREONTWIKKELING 1STE PROEF BURG. IR. COMPUTERWETENSCHAPPEN EERSTE EXAMENPERIODE ACADEMIEJAAR 2004-2005 Deel 1 : Gesloten Boek 1. Testen Geef een overzicht van de verschillende testen

Nadere informatie

INFITT01 - Internettechnologie WEEK 8

INFITT01 - Internettechnologie WEEK 8 INFITT01 - Internettechnologie WEEK 8 Programma Databases (JDBC, JNDI, ORM, JPA) MVC & Spring/Struts EJB Databases Veel web applicaties moeten informatie over langere tijd op kunnen slaan. Een voor de

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

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

Inhoud. Eindtoets. Introductie 2. Opgaven 3. Terugkoppeling 12

Inhoud. Eindtoets. Introductie 2. Opgaven 3. Terugkoppeling 12 Inhoud Introductie 2 Opgaven 3 Terugkoppeling 12 1 Objectgeoriënteerd programmeren in Java 1 I N T R O D U C T I E Deze eindtoets is bedoeld als voorbereiding op het tentamen van de cursus Objectgeoriënteerd

Nadere informatie

Tentamen Inleiding Programmeren (IN1608WI), 2 februari 2012, 9.00-11.00, Technische Universiteit Delft, Faculteit EWI, Afdeling 2.

Tentamen Inleiding Programmeren (IN1608WI), 2 februari 2012, 9.00-11.00, Technische Universiteit Delft, Faculteit EWI, Afdeling 2. Tentamen Inleiding Programmeren (IN1608WI), 2 februari 2012, 9.00-11.00, Technische Universiteit Delft, Faculteit EWI, Afdeling 2. Gesloten boek tentamen, bij dit tentamen mag je geen gebmik maken van

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

Dergelijke functionaliteit kunnen we zelf ook aan eigen code toevoegen.

Dergelijke functionaliteit kunnen we zelf ook aan eigen code toevoegen. Indexers in C#.Net In deze tutorial ga ik het hebben over indexers. Bij het gebruik van bijvoorbeeld een ArrayList object, kan je de gegevens uit deze collectie opvragen als ware het een array. // ArrayList

Nadere informatie

Datastructuren Werkcollege Intro

Datastructuren Werkcollege Intro Bart Hijmans, Universiteit Leiden. Universiteit Leiden The Netherlands Focus 1 19 ˆ Ervaring in gebruik en implementatie van datastructuren ˆ Kennis van mogelijkheden ˆ Programmeren voor andere programmeurs

Nadere informatie

et Zend Framework bestaat volledig uit objectgeoriënteerde

et Zend Framework bestaat volledig uit objectgeoriënteerde et Zend Framework bestaat volledig uit objectgeoriënteerde PHP-code. Om het Zend Framework goed te kunnen begrijpen en te kunnen gebruiken, moet u minimaal de basis van objectgeoriënteerd programmeren

Nadere informatie

Modelleren en Programmeren

Modelleren en Programmeren Modelleren en Programmeren Jeroen Bransen 16 december 2015 Tentamen Case study: Automatische taalherkenning Modelleren Specificeren Implementeren Modelleren Implementeren Tentamen Tentamen Vrijdag 22 januari

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

Dynamische Websites. Week 10

Dynamische Websites. Week 10 Dynamische Websites Week 10 INFO Feedback vraag het in de labo s als je feedback wilt op je code Lessen op 5/12 en 12/12 om 17.15 op 19/12 om 11.00 KLEURENCODE GROEN = zelf kunnen schrijven PAARS = code

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

Voor het bepalen van de getalswaarde van een string is een standaardmethode beschikbaar: n = Integer.parseInt(s);

Voor het bepalen van de getalswaarde van een string is een standaardmethode beschikbaar: n = Integer.parseInt(s); Uitwerking tentamen Imperatief Programmeren 20 december 2001 Cursieve opmerkingen behoren niet tot het antwoord, maar vormen een toelichting daarop. Die hoefden bij beantwoording van de vragen er niet

Nadere informatie

Verslag. Projectteam: 107 Datum: 16 oktober 2008 Project leden: Lennard Fonteijn Harish Marhe Nicoletta Saba Turgay Saruhan Robin Tummers

Verslag. Projectteam: 107 Datum: 16 oktober 2008 Project leden: Lennard Fonteijn Harish Marhe Nicoletta Saba Turgay Saruhan Robin Tummers Verslag SE Projectteam: 107 Datum: 16 oktober 2008 Project leden: Lennard Fonteijn Harish Marhe Nicoletta Saba Turgay Saruhan Robin Tummers In dit verslag zullen wij een beschrijving geven, over welke

Nadere informatie

C++ C++ als een verbetering van C. Abstracte datatypen met classes. Constructoren en destructoren. Subklassen. binding van functies

C++ C++ als een verbetering van C. Abstracte datatypen met classes. Constructoren en destructoren. Subklassen. binding van functies C++ C++ als een verbetering van C Abstracte datatypen met classes Constructoren en destructoren Subklassen binding van functies 1 Commentaar In C: /* Deze functie berekent de omtrek van een cirkel */ float

Nadere informatie

return an ; } private I L i s t l i j s t ;

return an ; } private I L i s t l i j s t ; In bovenstaande code werd de binding t e k s t. DataBindings. Add(new Binding ( Text, l i j s t, ) ) ; gebruikt om de eigenschap Text van het object tekst (dwz. tekst.text) te binden aan het object lijst.

Nadere informatie

In BlueJ. Doe onderstaande met muis/menu s:

In BlueJ. Doe onderstaande met muis/menu s: In BlueJ Doe onderstaande met muis/menu s: Download en unzip het bestand sklok-run.zip en open het in BlueJ Maak een Schaakklok-object Voer herstart() uit voor dit object Vraag de resterende tijd op voor

Nadere informatie

Voortgezet Prog. voor KI

Voortgezet Prog. voor KI Voortgezet Prog. voor KI Docent: Michael Wilkinson IWI 142 tel. 050-3638140 (secr. 3633939) Frank Brokken RC 352 tel. 050-3633688 Voorkennis: Inleiding Programmeren voor KI (nieuwe stijl) Stof: Practicum

Nadere informatie

Modelleren en Programmeren

Modelleren en Programmeren Modelleren en Programmeren Jeroen Bransen 27 november 2015 Recursie Objecten Constructors Aanpassen variabelen this keyword Recursie Recursie Recursieve functie roept zichzelf (direct of indirect) aan

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

Capita Selecta Design Patterns voor administratieve applicaties

Capita Selecta Design Patterns voor administratieve applicaties Capita Selecta voor administratieve applicaties Bij afstudeerproject: Generiek framework voor administratieve toepassingen in een webgeörienteerde omgeving Henk van de Ridder 26 augustus 2006 Inhoud 26

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

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

ASRemote WebService. Via deze webservice kunt u:

ASRemote WebService. Via deze webservice kunt u: ASRemote WebService De ASRemote WebService is een SOAP Webservice die softwarematige communicatie met Exact Globe mogelijk maakt vanaf een willekeurige locatie op het internet. Via deze webservice kunt

Nadere informatie

colleges recursieve datastructuren college 9 prioriteit van operatoren prioriteit in recursive descent parser

colleges recursieve datastructuren college 9 prioriteit van operatoren prioriteit in recursive descent parser colleges recursieve datastructuren college 9 interpreteren: waarde van bomen bepalen transformeren: vorm van bomen veranderen parseren herkennen van expressie in de tekst herkennen van functies onderwerp

Nadere informatie

Tentamen Inleiding Programmeren (IN1608WI), duur van de toets 2 uur Technische Universiteit Delft, Faculteit EWI, Afdeling 2.

Tentamen Inleiding Programmeren (IN1608WI), duur van de toets 2 uur Technische Universiteit Delft, Faculteit EWI, Afdeling 2. Tentamen Inleiding Programmeren (IN1608WI), duur van de toets 2 uur Technische Universiteit Delft, Faculteit EWI, Afdeling 2. Gesloten boek examen: er mag geen gebruik worden gemaakt van het studieboek.

Nadere informatie

Inleiding Programmeren 2

Inleiding Programmeren 2 Inleiding Programmeren 2 Gertjan van Noord, Leonie Bosveld 12 december 2016 Zelle hoofdstuk 10 Stof Overzicht - theorie 1. Zelle hoofdstuk 4 en 5 2. Zelle hoofdstuk 7 en 8, recursie, Brookshear hoofdstuk

Nadere informatie

TENTAMEN Programmeren 1

TENTAMEN Programmeren 1 TENTAMEN Programmeren 1 vakcode: 213500 datum: 15 augustus 2002 tijd: 13:30 17:00 uur Algemeen Bij dit tentamen mag gebruik worden gemaakt van het boek van Niño/Hosch, en van de handleiding van Programmeren

Nadere informatie

4, nov 2011 Vakcode: 192110174

4, nov 2011 Vakcode: 192110174 l J Tentamen lnleiding Object-Georienteerd Programmeren 4, nov 2011 Vakcode: 192110174 Dit tentamen bestaat uit 5 opgaven waarvoor in totaal 90 punten zijn te halen. Het eindcijfer wordt bepaald met de

Nadere informatie