kantine's Introduction
Deze README bevat de opgaven en notities van het project Kantine van thema 1.2 Week 1 - Opgave 1 b: declaratie = de Java Virtual Machine maakt ruimte vrij voor de variable en wijst er een naam aan toe initialisatie = de waarde wordt toegewezen aan de variable die eerder gedeclareerd is. Week 1 - Opgave 4 โ Belangrijk verschil tussen primitieve typen en objecten. // Primitieve typen In in een primitieve type wordt de data direct opgeslagen. Voorbeeld: Bij de primitieve type wordt de waarde van i gelijk veranderd zodra j aan i wordt toegekend. Deze waarde wordt direct opgeslagen in i en staat nu vast. Omdat j pas hierna veranderd wordt, krijgt i geen nieuwe waarde meer, i is immers al bepaald. // Objecten Omdat het bij een object type gaat om een verwijzing(referentie) naar een object worden de waarden niet direct opgeslagen maar wordt er een allias van het object gemaakt wanneer het wordt aangeroepen. Er kunnen op deze manier meerde waardes aan een object worden toegekend en de oorspronkelijke waarde van het object blijft in tact. Omdat de verwijzing pas op het moment van uitvoer de waarde bepaald worden ook latere veranderingen meegenomen. Week 2 - Opgave 5a Je weet niet hoe lang de rij is en wanneer je moet stoppen. Het einde kan bepaald worden door een voorwaarde. Daarom gebruik je de while lus. Week 3 - opgave 1a hoeveelheidGeldInKassa() aantalArtikelen() resetKassa() Week 3 - Opgave 2a Deze worden alleen gebruikt door de klasse KantineAanbod en niet door andere klassen. De gebruiker heeft verder niks nodig met de implementatie van de klasse en hoeft alleen de interface te zien. Daarom maken we het veld privaat omdat er geen andere klasse zijn die er gebruik van maken. Week 3 - Opgave 2b Een Set is een ongeorderde collectie en een map is een collectie met sleutelwaarden die gelinked zijn aan de items. Voorbeelden: HashSet is bijv. {1,2,3,4,5} HashMap gebruikt sleutelwaarde bij elk item: {a->1,b->2,c->3,d->4,e->5} Een HashMap gebruik je wanneer je een waarde aan een unieke naam wilt koppelen. Bijv een telefoon boek heeft nummers gekoppeld aan een naam. De naam weet je vaak wel dus kun je die gebruiken om het bijbehorende nummer te zoeken. Een HashSet gebruik je wanneer je een ballenbak wil maken, je kan kijken hoeveel ballen er in de ballenbak zitten maar de volgorde waarin ze zitten maakt niet uit Week 3 - Opgave 3a een constructor wordt aageroepen wanneer een object gemaakt wordt en geeft de instantie variablen een waarde Week 3 - Opgave 3b 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 bete- kenis van inclusief en exclusief. De methode roept de methode van een instantie vn de klas Random aan die een willekeurige waarde teruggeeft tussen 0 en het meegegeven argument. Het argument is de het maximale nummer - het minimale nummer, stel je wil een nummer tussen de 5 en 10 dan krijg je 5, dit betekent dat je nummers krijgt tussen 0(incl) en 5(excl). Wanneer je +1 doet krijg je nummers tussen 1(incl) en 5 (incl). Als je hier nog het minimale getal bij doet (in dit geval 5) krijg je getallen tussen 5 en 10. Week 4 - Opgave 1c Als je zelf geen constructor maakt wordt dit voor jou gedaan. Week 4 - Opgave 1d Deze methodes hebben geen invloed op de instance variables van Administratie (de staat van het object). dus deze methodes kunnen static zijn. Week 4 - Opgave 1e Als iets private is kan het alleen aangeroepen worden binnen de klas, als je dus een nieuw object aanmaakt en daarmee de private constructor aanroept zal deze een melding geven dat je die constructor niet aan kan roepen en daarmee dus niet het object aan kan maken. week 4 - Opgave 1g zie project folder week 4 - Opgave 1h Het keyword final zorgt ervoor dat de waarde achteraf niet meer veranderd kan worden. week 4 - Opgave 1i de compiler klaagt hierover omdat statische methodes niet bij een specefieke instantie horen van de classe. Wanneer je dan een variable aanroept weet java niet uit welke instance die gehaald moet worden. Wanneer een variable static is hoort deze ook bij de clas en niet bij een instantie en is er dus maar 1 van. week 4 - Opgave 1j Dat DAYS_IN_WEEK nu niet meer een constante variable is. Het doel van deze variable was een vaste waarde te introduceren zodat deze in de classe gebruikt kon worden, de waarde is nu niet meer vast. Week 4 - opgave 2b Vraag: Waarom moet een super aanroep in de constructor altijd bovenaan staan? Als de super aanroep niet boven aan staat zal Java zelf proberen om de aanroep automatisch in te voegen. Super komt dus altijd voor in de constructor en dit moet anders zal de superclass nooit gemaakt worden. De super moet daarom bovenaan omdat je eerst een superclass nodig hebt om de de class aan te maken van de constroctur en die is weer nodig voordat je variablen kan gaan wijzigen of methodes aanroepen. Sowieso is het een regel in blueJ en kan je niet compilen als de super aanroep niet boven aan staat. week 5 - Opgave 1c == Test of de variablen naar hetzelfde object verwijzen en equals(Object object) kijkt of de 2 objecten gelijk zijn(of de velden hetzelfde zijn) week 5 - Opgave 1d Als je 2 strings inhoudelijk wil vergelijken moet je equals(Object object) gebruiken. Deze controleert namelijk inhoudelijk of de 2 strings gelijk zijn. == Kijkt of 2 variablen naar hetzelfde object verwijzen en dat is niet het geval omdat er 2 verschillende variablen (=objecten) aangemaakt zijn. Wanneer je toch == gebruikt kan het wel werken, dit heeft met de werking van String te maken. week 5 - Opgave 5a Nee dit kan niet, omdat een interface een abstracte klasse is en van abstracte klasses kan je geen instantie maken week 5 - Opgave 5b Nee dit kan niet, omdat een abstractie klasse aangeeft dat er abstracte methodes inzit en je dus geen instantie kan maken van de klasse omdat er methodes kunnen zijn die geen body hebben. week 5 - Opgave 5c nee, java weet dan niet naar welke klasse hij moet als hij een method call van de superclass moet hebben week 5 - Opgave 5d ja, want de methodes van een interface zijn allemaal abstract en moeten allemaal geoveride worden, hierdoor zijn er geen supercalls. week 5 - Opgave 5e Ja week 5 - Opgave 5f Ja dat klopt, als je een concrete methode in een interface zou hebben weet java niet of een supercall naar de interface gaat of naar de inheritance. week 5 - Opgave 5g Ja, anders kan je een instantie maken van een klasse met een methode zonder body. week 5 - Opgave 5h Polymorfisme betekend dat iets verschillende vormen kan hebben. Een klasse auto kan bijvoorbeeld een BMW zijn of een Nissan elk met zijn eigen implementatie. Wanneer je klasse auto abstract maakt weet je zeker dat elke subclass van auto de methodes bevat gegeven in de superclass auto. Wanneer je klasse auto een interface maakt weet je zeker dat elke subclass van auto zijn eigen implementatie van de methodes in auto bevat. week 5 - Opgave 6a Ja dit kan, omdat een abstractie klasse alleen aangeeft dat er abstracte methodes inzit en je dus geen instantie kan maken van de klasse. week 5 - Opgave 6b Nee dit hoeft niet, de subclass kan zelf ook abstract zijn. Dit is logisch omdat een subclass een specifiekere groep kan aangeven en meer details te geven maar het hoeft nog geen concreet object te zijn. week 5 - Opgave 6c Je kan de niet geimplementeerde methode en de klasse abstract maken, dit is logisch omdat je zo de implementatie 'doorschuift' naar een subclasse. week 5 - Opgave 6d Je maakt een instantie variable of je maakt hem niet en dat kan je niet doorschuiven naar een subclasse. week 5 - Opgave 6e final betekend dat de implementatie van de methode niet meer geoveride kan worden. Een methode kan dan niet abstract zijn omdat de methode dan nooit een body kan krijgen en dus nooit gebruikt kan worden. week 6 - Opgave 1b en c Notities voor morgen te bespreken: - Klasse TeWeinigGeldException met drie constructors aangemaakt - Klasse Betaalwijze (public void betaal) aangepast - Klasse Contant en Pinpas (public void betaal) aangepast - Klasse Kassa (rekenAf methode) aangepast - Klasse Kantine (verwerkRijVoorKassa) aangpast - Klasse KantineSimulatie (verwerkRijVoorKassa in loop) aangepast - Alles compileerd alleen tijdens de simulatie gaat nog iets mis. Nadat iedereen is binnen gekomen wordt er niet voor iedere persoon geittereerd of ze voldoende saldo hebben. - test met eclipse Tests voor geboortedatum: Tests verwachting resultaat resultaat2 19/5/2014 wel wel wel 1/1/1990 wel wel wel -1/10/2000 niet niet wel 10/13/2001 niet niet wel 29/2/2008 wel wel wel 29/2/2009 niet niet niet 10/2/2000 wel wel wel 29/2/2000 wel wel wel 30/2/2000 niet wel niet 30/2/1990 niet niet niet 29/2/1900 niet niet niet 29/2/2016 wel wel wel 29/2/2020 wel wel wel 29/2/2021 niet niet niet 28/2/1900 wel wel wel
kantine's People
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. ๐๐๐
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google โค๏ธ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.