Author: Nick Tel en Wessel van Tamelen Week 1 Opgave 1: b) Je hebt hierboven twee instantievariabelen gedeclareerd. Voordat je ze zinnig zou kunnen gebruiken moet je ze wel initialiseren. Leg uit wat de begrippen declaratie en initialisatie betekenen. N.B. In het BlueJ boek worden declaratie en initialisatie vaak in één keer gedaan Met initialiseren zeg je wat voor onderdelen het object heeft (bijvoorbeeld de variabelen). definiëren geeft een waarde aan het object en wat voor type het is. Opgave 4: Opgave 4 – Belangrijk verschil tussen primitieve typen en objecten Primitieve typen (zie 3.7 en bijlage B BlueJ boek) en objecten zijn twee fundamenteel verschillende soorten typen. Het belangrijkste verschil in gedrag zie hieronder geïllustreerd aan de hand van twee code fragmenten: Verklaar dit verschil in gedrag. Gebruik in je uitleg de uitdrukkingen “directe opslag” en “referentie(=verwijzing)”. In het college is hier ook aandacht aan besteed met het Classroom voorbeeld Objecten gebruiken worden aangeroepen doormiddel van referenties. je hebt 1 object maar meerdere manieren om dit object aan te roepen. Primitieve typen: worden direct opgeslagen en geef je van tevoren aan wat voor beginwaarde ze hebben. Week 2 Opdracht 5 a) Leg uit waarom het gebruik van een while lus in de methode verwerkRijVoorKassa() handiger is dan een for lus. Omdat de waarde van de Arraylist Size geen vast gegeven is. hierdoor kan je beter een while gebruiken. week 3 Opgave 1 – Refactoren: dubbele methodes en het gebruik van een iterator Als je goed kijkt naar de code van de eerste versie van de kantine simulatie valt je misschien op dat er soms methodes zijn die twee keer voorkomen. Een van de twee methodes is slechts een soort doorgeefluik. Dit kun je efficienter oplossen. a) Bij welke methodes in Kassa en Kantine komt dit voor? get totaal Artikelen. uit de klasse Kassa get totaalprijs. uit de klasse Kassa LoopPakSluitAan uit de klasse Kantine Opgave 2 – De klasse KantineAanbod Je krijgt van ons de klasse KantineAanbod kado, zie Blackboard. Voeg deze klasse aan je BlueJ project toe. Zorg dat je de code goed begrijpt! a) Leg uit waarom het goed is om de methodes ArrayList<Artikel> getArrayList(String productnaam) en Artikel getArtikel(ArrayList<Artikel>) private te maken. Omdat deze methodes afhankelijk van elkaar zijn. Als je ze public maakt dan kunnen ze dus door de eindgebruiker veranderd worden en lopen de methodes niet meer synchroon. dus dan krijg je dat bijvoorbeeld de prijzen van kaas koppelt aan brood. b) In welke situatie gebruik je een HashMap en wanneer een HashSet? Een hashmap slaat een referentie en waarde op van een object . hierdoor kan je dus iets ophalen als je de positie ervan weet. Een hashset kan je gebruiken om een object en waarde op een specifieke plek op te slaan. Opgave 3 – Refactoren van Kantine en KantineSimulatie a) Leg de werking van de constructor uit. public KantineSimulatie() { kantine=new Kantine(); // maakt een nieuwe kantine aan random=new Random(); // maakt een nieuw random cijfer int[] hoeveelheden=getRandomArray( AANTAL_ARTIKELEN, MIN_ARTIKELEN_PER_SOORT, MAX_ARTIKELEN_PER_SOORT); // vult de array met hoeveelheden met een random aantal. kantineaanbod=new KantineAanbod(artikelnamen, artikelprijzen, hoeveelheden); // hier maakt hij een nieuw kantine aanbod aan kantine.setKantineAanbod(kantineaanbod); } b) Leg de implementatie van int getRandomValue(int min, int max) uit en met name waarom er +1 in voorkomt. Gebruik de Java API. Hint: denk aan de betekenis van inclusief en exclusief. int min geeft aan wat de minimale waarde van de random moet zijn int max geeft de maximale waarde van het random cijfer aan met +1 kan je dus zorgen dat de som eclusief de minimale waarde is ( deze doet hij dus +1) en inclusief de maximale waarde.
© Copyright 2024 ExpyDoc