Je leert objectgeoriënteerd programmeren. Dat is een manier van programmeren waarbij data en logica gebundeld zijn in objecten. We leren dit voor zowel JavaScript als C++.
Inloggen met Google
❗️ Voordat je start Ga naar Replit met de volgende link:
https://replit.com/@Krisvan1/ObjectOrientedProgramming Fork de repository. Maak eventueel een account aan als je die nog niet hebt.
Elke opdracht kan je zelf testen door op de “Run” knop te drukken.
TIP: Je kan ook checken of je opdracht echt klopt door de Unit tests te runnen. Deze vind je of recht naast je console of links onder bij Tools.
T1. Web Design met HTML en CSS
Je leert hoe je informatie op een website zet met de programmeertalen HTML en CSS.
Je kunt uitleggen wat een URL is en waarvoor een webbrowser deze gebruikt en je kent de volgende vier onderdelen van een URL: protocol, server, map, bestand
Je kent het principe van tags zoals die in HTML gebruikt worden.
Je kent de basisstructuur van een HTML-pagina.
Je weet wat de begrippen parent, child en sibling betekenen en kunt de betekenis van deze begrippen toelichten. Je kunt deze begrippen toepassen op HTML.
Je kent de volgende tags: <html>, <head>, <body>, <p>, <ol>, <ul>, <li>, <h1> t/m <h6>, <br/>, <img> met src en alt, <a> met href, <div>, <table>, <tr>, <th>, <td>. Je kunt uitleggen wat deze tags doen en hoe je kunt ze gebruiken.
Je kunt eenvoudige stukken HTML interpreteren, dat wil zeggen dat je kunt uitleggen hoe een webbrowser omgaat met een eenvoudig stuk HTML.
Je kunt wijzigingen aanbrengen in een eenvoudig stuk HTML, de syntax van de HTML tags die daarvoor nodig zijn wordt daarbij gegeven in de vraag.
CSS
Je kunt uitleggen wat er binnen de informatica met Separation of Concern wordt bedoeld en hoe dat op HTML en CSS van toepassing is.
Je kunt uitleggen wat selectors, properties en values in CSS zijn en je kunt ermee werken. Dat wil zeggen dat je eenvoudige stukken CSS met selectors, properties en values kunt maken en de werking ervan kunt uitleggen.
Je kunt CSS selectors maken die bestaan uit een tag, class of id of een combinatie daarvan.
Je kunt de voorrangsregels tussen tags, classes en id’s toepassen en je kunt daarbij aangeven welke selectors meer of minder specifiek zijn.
Je kent van de volgende properties de betekenis en kunt deze toepassen in CSS: font-size, width, height, color, background-color.
Je kunt werken met kleuren en doorzichtigheid in CSS, door gebruik te maken van kleurnamen en rgba().
Je kunt de werking van boxen in CSS toelichten. Je kunt daarbij uitleggen wat de content, padding, border en margin van een box zijn.
Je kunt eenvoudige stukken CSS interpreteren, dat wil zeggen dat je kunt uitleggen hoe een webbrowser omgaat met een eenvoudig stuk CSS en hoe het eruit ziet in een webbrowser.
Je kunt wijzigingen aanbrengen in een eenvoudig stuk CSS, de properties die daarvoor nodig zijn worden beschreven in de vraag.
Je kunt binaire getallen omzetten naar decimale getallen en andersom.
Je kunt binaire getallen omzetten naar hexadecimale getallen en andersom.
Je kunt decimale getallen omzetten naar hexadecimale getallen en andersom.
Je kunt uitrekenen uit hoeveel bits of bytes een kilobyte, megabyte, gigabyte of terabyte bestaat.
Je kunt uitleggen waarin de klassieke maten van kilo-, mega-, gigabyte etc. afwijken van de SI-maten.
Je weet wat het verschil is tussen ASCII en Unicode en kunt uitleggen hoe ze tekst digitaliseren.
Je kunt uitleggen hoe het RGB-kleurenmodel en het CMYK-kleurmodel werken, je kunt de verschillen tussen beide kleurmodellen benoemen en je kunt de modellen gebruiken om kleuren te maken en kleuren te veranderen.
Je kent de betekenis van het begrip resolutie
Je kunt uitleggen hoe plaatjes worden opgeslagen door een computer
Je kent verschillende bestandsformaten voor plaatjes, zoals bmp, gif, jpg en png en de eigenschappen waarin ze van elkaar verschillen
Je kunt aangeven welk bestandsformaat voor plaatjes het best geschikt is voor een beschreven situatie
Je kunt uitleggen hoe muziek wordt opgeslagen door een computer
Je kunt uitleggen hoe video wordt opgeslagen door een computer
Je kunt uitleggen wat een extensie is en waar deze voor dient
Je kunt uitleggen wat compressie is aan de hand van voorbeelden (tekst, geluid, plaatjes en video) en je kent het verschil tussen lossless en niet-lossless compressie.
Alleen vwo: Je kunt op basis van een beschrijving van een compressie algoritme een klein voorbeeld comprimeren en decomprimeren.
Beeldbewerking (deze leerdoelen gelden NIET voor schooljaar 23/24)
Je kunt het aantal pixels van een plaatje aanpassen
Je kunt een plaatje bijsnijden (Engels: crop)
Je kunt een plaatje in diverse bestand-formaten omzetten (bijvoorbeeld .jpg, .png, .gif)
Je kunt basisinstellingen van de kleuren in een plaatje aanpassen (bijvoorbeeld contrast)
Je kunt de achtergrond van een plaatje transparant maken, een vast kleur maken, vervangen door een ander plaatje.
Je begrijpt wat je kunt doen met lagen en je kunt dat uitleggen aan de hand van een gegeven situatie.
Je kunt uitleggen wat er binnen de informatica bedoeld wordt met het begrip grammatica.
Je kunt uitleggen wat een variabele is.
Je kunt uitleggen wat declareren en definiëren van een variabele is.
Je kunt uitleggen wat een datatype is
Je kent de datatypen boolean, number en string en begrijpt welke waarden erin opgeslagen worden
Je kunt uitleggen wat controlestructuren zijn en je kent de volgende voorbeelden: if-statement, for-loop, while-loop.
Je kunt uitleggen waar abstractie voor dient.
Je kunt uitleggen wat een functie is.
Je kunt uitleggen wat declareren, definiëren en aanroepen van een functie is.
Je kunt uitleggen wat een parameter van een functie is.
Je kunt uitleggen wat het resultaat van een functie is.
Je kunt uitleggen wat het verschil is tussen globale en lokale variabelen.
Je kunt de leesbaarheid van code verbeteren door gebruik te maken van commentaar, lay-out en structuur.
Javascript
je kunt commentaarregels gebruiken.
je kunt aangeven welke waarden bepaalde variabelen hebben aan het einde van een stukje computercode.
je kunt op basis van een stukje code zelf de bijbehorende schermuitvoer tekenen.
je kunt met behulp van naslagmateriaal zelf computercode schrijven om een vraag te beantwoorden.
je weet hoe je in een tekening animatie aanbrengt.
je begrijpt wat variabelen zijn en hoe je deze kunt gebruiken.
je begrijpt wat een logische expressie is en hoe je deze kunt gebruiken.
je begrijpt hoe de logische operatoren “en”, “of” en “niet” werken en je kunt deze gebruiken.
je begrijpt hoe de vergelijkingsoperatoren “groter dan”, “kleiner dan”, “groter-gelijk dan”, “kleiner-gelijk dan”, “gelijk aan” en “ongelijk aan” werken en je kunt deze gebruiken.
je weet wat de datatypen boolean, number en string zijn en kunt deze gebruiken.
je begrijpt hoe een if-statement werkt en hoe je deze kunt gebruiken.
je begrijpt hoe een while-loop en een for-loop werken en hoe je deze kunt gebruiken.
je kunt een while-loop omzetten naar een for-loop en andersom.
je begrijpt hoe een for-loop in een for-loop werkt en hoe je dit kunt gebruiken.
je begrijpt wat arrays zijn en hoe je deze kunt gebruiken.
je kunt een array doorlopen met een for-loop.
Alleen vwo: je kunt een twee-dimensionale array doorlopen met een for-loop in een for-loop
je begrijpt hoe een functie werkt en hoe je deze kunt gebruiken.
je begrijpt wat parameters van een functie zijn en hoe je deze gebruikt.
je begrijpt wat het resultaat van een functie is en hoe je dit gebruikt.
je begrijpt wat er op het syntaxblad Javascript staat en dit kunt toelichten en gebruiken.
je kunt uitleggen wat een flowchart is en waarvoor je deze gebruikt
je kunt flowcharts lezen, dat betekent dat je de output van een flowchart kunt bepalen als de input en de flowchart gegeven worden
je kunt een flowchart maken van een eenvoudig algoritme waarvan je een korte beschrijving en een voorbeeld van de input en de output krijgt. Een eenvoudig algoritme is een algoritme waarbij een rij wordt doorlopen, zoals bijvoorbeeld: zoek het grootste getal in een rij, bereken het gemiddelde van alle getallen in een rij, tel het aantal keer dat een bepaalde letter voorkomt in een tekst.
je kunt een flowcharts omzetten naar JavaScript code en JavaScript code kunnen omzetten naar een flowchart.
Je kunt uitleggen wat een relationele database is.
alleen vwo: Je kunt gegevens analyseren en structureren en relaties vastleggen in een multipliciteitsdiagram.
alleen vwo: Je kunt gegevens analyseren en structureren en vastleggen in een strokendiagram.
Je kunt een database voorzien van een voorbeeldpopulatie (dit betekent dat je gegevens in velden kunt invullen).
Je kunt het verschil tussen en 1:n, n:1 en n:m relatie uitleggen en je kunt in een gegeven voorbeeld aangeven van welke relatie sprake is.
Je kunt uitleggen wat redundantie is.
Je kunt uitleggen wat normaliseren is.
Je kunt een gegeven, niet volledig genormaliseerde database omzetten naar een database in de 3e normaalvorm (dit betekent dat je de redundante informatie kunt verwijderen door de database te splitsen in meerdere aan elkaar gerelateerde tabellen).
Je kunt voor een gegeven situatie een voorstel te doen voor een genormaliseerde database structuur.
Je kunt aangegeven welke (combinaties van) velden uniek zijn / als sleutel kunnen dienen.
Je weet waarvoor de primaire sleutel dient.
Je weet wat een verwijzende sleutel is.
Je weet hoe verwijzingen tussen verschillende tabellen met behulp van sleutels werken.
Je weet hoe in een database wordt aangegeven dat een veld geen waarde bevat.
Databases programmeren in khan:
Je kunt met CREATE TABLE een gegevensmodel omzetten in een database.
Je kunt met INSERT rijen aan een tabel toevoegen.
alleen vwo: Je kunt met DELETE rijen verwijderen uit een tabel.
Je kunt met SELECT gegevens uit een relationele database opvragen.
Je kunt de opgevraagde gegevens uit een relationele database oplopend en aflopend sorteren.
Je kunt voorwaarden stellen aan de op te vragen gegevens uit de database (WHERE) en gebruikmaken van operatoren (=, <, >, >=, <=, <>).
Je kunt gebruikmaken van LIKE bij het stellen van voorwaarden in de query.
alleen vwo: Je kunt gebruik maken van een subquery in combinatie met de voorwaarde IN.
Je kunt gebruikmaken van samengestelde voorwaarden (AND, OR) bij het stellen van voorwaarden in de query.
Je kunt gebruikmaken van omgedraaide voorwaarden (NOT) bij het stellen van voorwaarden in de query.
Je kunt gebruikmaken van NULL bij het stellen van voorwaarden in de query.
Je kunt gebruikmaken van aggregatiefuncties (COUNT, SUM, MAX, MIN, AVG) bij het opstellen van query.
Je kunt gebruikmaken van GROUP BY bij het groeperen van de resultaten van een query.
Je kunt voorwaarden stellen aan op te vragen gegroepeerde gegevens met HAVING
alleen havo: Je kunt bij een query over 2 of 3 tabellen de JOIN toepassen
alleen vwo: Je kunt bij een query over 2 of meer tabellen de JOIN toepassen
Je kunt een query maken met JOIN van een 1-op-n relatie
Je kunt een query maken met JOIN van een n-op-m relatie
alleen vwo: Je kent het verschil tussen cross join (JOIN zonder ON), inner join (JOIN ON), left outer join (LEFT JOIN ON) en kunt beslissen welke van deze drie je nodig hebt in een query.
Je kunt met behulp van een berekening kunt aantonen wat de hoofdreden is om het IP versie 4 protocol te vervangen door IPv6
Je kunt het verschil uitleggen tussen een LAN en een WAN.
Je kent de belangrijkste verschillen tussen communicatie over koperen verbindingen, glasvezelverbindingen en draadloze verbindingen
Je weet wat bij computernetwerken de termen lag / latency / latentie en bandbreedte betekenen en hoe ze de snelheid van een netwerkverbinding beïnvloeden.
Je kunt uitleggen waarvoor het het OSI-model is ontwikkeld
Je begrijpt het OSI-model / IP-stack. Je kunt de applicatielaag, transportlaag, netwerklaag, datalinklaag en fysische laag uitleggen.
Je kunt twee voordelen benoemen van het werken met een lagenmodel zoals het OSI-model of de IP-stack.
Je weet wat een MAC-adres is, bij welke laag het hoort en waarvoor het wordt gebruikt.
Je weet wat ARP is en waarvoor het dient.
Je weet wat het MAC broadcast adres is en waarvoor het dient.
Je weet wat een IP-adres is, bij welke laag het hoort en waarvoor het wordt gebruikt.
Je kunt met behulp van routeringstabellen het gedrag van een router bij een inkomend bericht beschrijven.
Je weet wat het IP broadcast adres is en waarvoor het dient.
Je weet wat een subnetmasker is en waarvoor dit dient.
Je kunt met behulp van het subnetmasker uitrekenen hoeveel apparaten er in een netwerk verbonden kunnen zijn.
Je weet wat het nadeel is van een subnetwerk met heel veel apparaten.
Je kunt de twee belangrijkste verschillen tussen TCP en UDP benoemen
Je weet wat TCP-poorten zijn en waarvoor deze dienen
Je kunt beschrijven hoe een pakketje van een apparaat in het ene subnet naar een apparaat in het andere subnet reist.
Je kent de functie van de volgende netwerkapparaten: router, modem, switch, wireless access point, repeater, firewall
Je kunt beredeneren tot op welk niveau van het OSI-model een netwerkapparaat werkzaam is.
Je kunt bij schematische weergave van een netwerk de verschillende netwerkapparaten herkennen en benoemen en IP-adressen en subnetmaskers bepalen of toewijzen.
Je weet wat de functie van een firewall is.
Je begrijpt wat een DNS is en waarvoor deze dient
Je kunt uitleggen wat de functie van een DHCP server is.
Oefentoets
Je kunt een deel van je kennis en vaardigheden testen met de volgende oefenopgaven:
Je leert objectgeoriënteerd programmeren. Dat is een manier van programmeren waarbij data en logica gebundeld zijn in objecten. We leren dit voor zowel JavaScript als C++.
Behorende bij reader Security met toegevoegd [paginanummer]:
H2:
Je kunt uitleggen wat authenticatie is. [44]
Je kunt uitleggen wat two factor authentication (2FA) is. [44]
Je kunt uitleggen hoe een botnet wordt opgezet en wat er mee wordt gedaan. [45]
Je kunt de sterkte van wachtwoorden kunnen bepalen of vergelijken. [46]
Je kun aan de hand van een wachtwoordformaat uitrekenen hoeveel mogelijkheden maximaal moeten worden gecontroleerd in een brute force attack, zowel met als zonder gebruik van een dictionary. [46 + overig materiaal]
Je kunt uitleggen wat phishing is. [52]
H3:
Je kunt uitleggen wat social engineering is [55]
Je kunt drie methoden om te hacken beschrijven. [59]
Je kent in de context van security de principes confidentiality, integrity, availability, kunt deze uitleggen en toepassen op een casus. [61]
Je kunt werken met de analogie van Alice, Bob en Eve (of Chris). [63]
H4:
Je begrijpt hoe de versleuteling met behulp van (Caesar)substitutie werkt en je kunt er een boodschap mee versleutelen en ontcijferen [65]
Je begrijpt hoe de versleuteling met behulp van transpositie werkt en je kunt met behulp van een gegeven transpositiemethode een boodschap versleutelen en ontcijferen [66]
Je begrijpt hoe de versleuteling met behulp van Vigenèresubstitutie werkt en je kunt er met een uitgeprinte hulptabel een boodschap mee versleutelen en ontcijferen. [72]
H5
Je kunt uitleggen wat versleuteling met m.b.v. een one time pad (of: eenmalig blokcijfer) inhoudt en waarom deze manier van versleutelen, onder de juiste voorwaarden, niet te kraken is. Je kent deze voorwaarden. [76]
Je weet wat de (binaire) XOR-operatie is, op welke wijze deze een rol kan vervullen bij versleuteling en kunt deze operatie toepassen [78]
Je kunt in grote lijnen uitleggen via welke vier stappen AES-encryptie werkt. [80 + overig materiaal]
H6
Je kunt het verschil tussen HTTP en HTTPS uitleggen. [86]
Je kunt uitleggen wat het verschil is tussen symmetrische en asymmetrische cryptografie en herkennen of een vorm van encryptie symmetrisch of asymmetrisch is. [89]
Je weet hoe sleuteluitwisseling m.b.v. Diffie-Hellman plaatsvindt en kunt dit voordoen met gegeven getallen p en g. [92]
Je kunt uitleggen welke stappen in de communicatie tussen browser en webserver plaatsvindt om een versleutelde verbinding tot stand te brengen. [93]
Je kunt aan de hand van de inhoud van een website beredeneren of het onverantwoord is om deze met behulp van HTTP te benaderen. [93]
Je begrijpt hoe de versleuteling met behulp van RSA werkt en je kunt er met gegeven eenvoudige sleutels m.b.v. je grafische rekenmachine een boodschap mee versleutelen en ontcijferen. [94 + overig materiaal]
Je kunt met een gegeven getal p en q m.b.v. je grafische rekenmachine zelf een publiek en privé sleutelpaar genereren. [overig materiaal]
Je kunt uitleggen welke twee functies encryptie met een public en private sleutelpaar heeft. [94 + overig materiaal]
Je kunt uitleggen wat een ‘man-in-the-middle-attack’ is. [96]
Je kan uitleggen welke de functies van een webcertificaat heeft en welke informatie het daarvoor bevat. [97]
Je weet welke stappen een browser uitvoert om een webcertificaat te controleren. [97]
Je weet wat een stamcertificaat / rootcertificate is. [98]
Je kunt de rol van certificaat-autoriteiten beschrijven. [100]
Behorend bij Informatica Actief of overig materiaal:
Je kunt uitleggen wat een cookie is en welke functie een cookie heeft.
Je kent de kenmerken van verschillende soorten malware (virussen, wormen, Trojaans paard, ransomware). Je weet onder andere hoe ze zich verspreiden, en wat hun typische doel of effect is.
Je kunt uitleggen wat een dictionary attack is.
Je kent de algemene kenmerken van een hash(functie).
Je kunt een paar voorbeelden geven van populaire hash-algoritmen
Je kent in de context van hashing de begrippen salting en collision
Je kunt verschillende toepassingen van hashing uitleggen, zoals wachtwoordverificatie, het controleren van de authenticiteit van data of het identificeren van bestanden.
Fork de repository. Maak eventueel een account aan als je die nog niet hebt.
Elke opdracht kan je zelf testen door op de “Run” knop te drukken.
TIP: Je kan ook checken of je opdracht echt klopt door de Unit tests te runnen. Deze vind je of recht naast je console of links onder bij Tools.
TIP: Onderaan deze pagina staat een cheat-sheet voor de syntax van JavaScript.
📦️ Classes
Creëer een object genaamd book dat de volgende eigenschappen heeft: title, author, en pages. Print de title en author van het boek naar de console.
Creëer een array genaamd books die meerdere boekobjecten bevat. Elk boekobject moet de eigenschappen title, author, en pages hebben. Loop door elk boek in de array en print de title en author naar de console.
Maak een class genaamd Book met eigenschappen: title, author, en pages. Deze class moet ook een methode hebben genaamd printDetails die de title en author van het boek print. Creëer een boek van deze class, noem het myBook, en roep de printDetails methode aan.
TIP:: Je kan een methode aanroepen door de naam van de class te gebruiken, gevolgd door een punt en de naam van de methode. Bijvoorbeeld: myBook.printDetails()
Creëer een array genaamd myBooks die instanties van de Book class bevat. Loop door elk boek in de array en roep de printDetails methode aan voor elk boek.
🗺️ UML Diagrams
Je hebt keuze! Kies uit een makkelijke of moeilijke opdracht.
Pak papier of je iPad erbij om een UML diagram te tekenen.
Je bent gevraagd om een basis UML klassendiagram te ontwerpen voor een bakkerij systeem. Het systeem moet producten en klanten bijhouden.
Vereisten
Product:
Elk product heeft een unieke productcode, een naam (bijv. brood, taart, croissant) en een prijs.
Producten kunnen worden verkocht of bijgevuld.
Klant:
Klanten hebben een unieke klantID, naam en een aankoopgeschiedenis (een lijst van gekochte producten).
Klanten kunnen producten kopen.
Taak
Ontwerp een UML klassendiagram dat de klassen, attributen, methoden en relaties vastlegt op basis van de verstrekte vereisten.
Achtergrond
Je hebt de taak om een basis UML klassendiagram te ontwerpen voor een bibliotheeksysteem. Het systeem moet boeken, leners en personeelsleden bijhouden.
Vereisten
Boek:
Elk boek heeft een uniek ISBN-nummer, een titel, een auteur, een publicatiejaar en een status (bijv. beschikbaar, uitgeleend, in onderhoud).
Boeken kunnen worden geleend of teruggebracht.
Lener:
Leners hebben een unieke ID, naam, adres en een lijst van boeken die ze hebben geleend.
Leners kunnen een boek lenen, mits ze geen achterstallige boeken hebben.
Leners kunnen een boek terugbrengen.
Personeel:
Personeelsleden hebben een ID, naam, functie (bijv. bibliothecaris, onderhoud, admin) en een werkschema.
Personeel kan boeken aan het systeem toevoegen of verwijderen.
Bibliothecarissen kunnen boeken uitlenen aan leners.
Onderhoudspersoneel kan een boek markeren als in onderhoud.
Relaties:
Een lener kan meerdere boeken lenen, maar elk boek kan op een bepaald moment slechts door één lener worden geleend.
Personeel kan meerdere boeken beheren, en elk boek kan door meerdere personeelsleden worden beheerd.
Geef bij elke relatie aan of het een één-op-één, één-op-veel of veel-op-veel relatie is.
Taak
Ontwerp een UML klassendiagram dat de klassen, attributen, methoden en relaties vastlegt op basis van de verstrekte vereisten.
Klant - Product: Een één-op-veel relatie aangezien een klant meerdere producten kan kopen, maar elk product op een bepaald moment slechts door één klant wordt gekocht (per transactie).
status: String of Enum (beschikbaar, uitgeleend, in onderhoud)
Methoden:
leenUit(): Void
brengTerug(): Void
Lener:
Attributen:
lenerID: String (Uniek)
naam: String
adres: String
geleendeBoeken: Lijst
Methoden:
leenBoek(boek: Boek): Void
brengBoekTerug(boek: Boek): Void
Personeel:
Attributen:
personeelID: String (Uniek)
naam: String
functie: String of Enum (bibliothecaris, onderhoud, admin)
werkschema: String
Methoden:
voegBoekToe(boek: Boek): Void
verwijderBoek(boek: Boek): Void
leenBoekUit(boek: Boek, lener: Lener): Void
markeerOnderhoud(boek: Boek): Void
Relaties
De volgende relatie zijn met pijlen getekend:
Lener - Boek: Een één-op-veel relatie aangezien een lener meerdere boeken kan lenen, maar elk boek kan op een bepaald moment slechts door één lener worden geleend.
Personeel - Boek: Een veel-op-veel relatie aangezien een personeelslid meerdere boeken kan beheren en elk boek kan door meerdere personeelsleden worden beheerd.
Fork de repository. Maak eventueel een account aan als je die nog niet hebt.
Elke opdracht kan je zelf testen door op de “Run” knop te drukken.
Maak een basis klasse genaamd Dier met de volgende attributen: naam, leeftijd, en gewicht. Deze klasse moet ook de methoden eten() en slapen() bevatten die respectievelijk "[naam] is aan het eten!" en "[naam] slaapt!" naar de console afdrukken.
Creëer een afgeleide klasse genaamd Vogel die erft van de Dier klasse. Deze klasse moet een extra attribuut vleugelspanwijdte en een methode vliegen() hebben. De vliegen() methode moet "[naam] is aan het vliegen met een vleugelspanwijdte van [vleugelspanwijdte] meters!" afdrukken.
Maak een andere afgeleide klasse genaamd Zoogdier die ook erft van de Dier klasse. Deze klasse moet een extra attribuut vachtkleur hebben en een methode rennen(). De methode rennen() moet "[naam] is aan het rennen!" naar de console afdrukken.
Maak een instantie van de Vogel klasse genaamd "Adelaar" met een leeftijd van 5, gewicht van 8 kg, en een vleugelspanwijdte van 2,3 meter. Laat de adelaar eten, slapen, en vliegen.
Maak vervolgens een instantie van de Zoogdier klasse genaamd “Leeuw” met een leeftijd van 3, gewicht van 190 kg, en een vachtkleur van “goudkleurig”. Laat de leeuw eten, slapen, en rennen.
TIP: Gebruik het cheat sheet als je niet meer weet hoe je alles moet typen
Een Virtueel Huisdier is een digitaal karakter dat je kunt voeden, spelen en zorgen. Je huisdier heeft bepaalde eigenschappen zoals honger en geluk. Je kunt acties uitvoeren om aan de behoeften van je huisdier te voldoen. Kijk in de replit voor alle stappen.
Klaar? Ga verder met Opdracht 3 van de reguliere opdrachten:
Je gaat oefenen met alles wat je tot nu toe geleerd hebt.
In het Ziekenhuis van Sint-Elisabeth draait alles om de zorg voor patiënten. Patiëntenprivacy staat hierbij hoog in het vaandel. Elk patiëntendossier bevat naast medische gegevens zoals leeftijd, medische geschiedenis en allergieën ook een geheime patiëntencode. Deze code is strikt voor intern gebruik en wordt niet met de patiënt gedeeld.
Het ziekenhuis kent verschillende afdelingen, maar Cardiologie en Neurologie zijn de meest bezochte. Elke doctor in het ziekenhuis is een specialist. Dr. Hartman, een ervaren cardioloog met 300 uitgevoerde operaties op zijn naam, werkt op de afdeling Cardiologie. Hij is bekend om zijn efficiëntie en gebruikt de getDetails methode om snel een patiëntendossier in te zien. Aan de andere kant is er Dr. Brein van de afdeling Neurologie, die gespecialiseerd is in neurologisch onderzoek en al 200 MRI-scans en CT-scans uitgevoerd heeft. Elke doctor heeft een lijst van patienten waarvoor hij zorgt. Elke doctor kan ook een patient onderzoeken
Mevrouw Jansen, 67 jaar oud, komt voor haar jaarlijkse hartcontrole. Ze is allergisch voor penicilline en heeft vorig jaar een hartoperatie ondergaan. Terwijl Dr. Hartman haar dossier inziet met de getDetails methode, merkt hij op dat haar geheime patiëntencode, zoals het hoort, verborgen blijft.
Maak een UML Diagram van de verschillende classes, attributen en methoden.
TIP: Denk goed na wat de relatie is tussen de verschillende classes.
Je kunt de waarde van een objecteigenschap opvragen door de naam van het object gevolgd door een punt en daarna de eigenschapsnaam.
console.log(player.name);// John
Looping Through an Array of Objects
Een for loop herhaalt een reeks instructies een bepaald aantal keer. In dit geval loopt de loop door elk object in de players array en drukt de naam en score van elke speler af.
Uitleg loop:
i = 0: Initialiseert de tellervariabele i op 0.
i < players.length: De loop blijft draaien zolang i kleiner is dan het aantal items in de players array.
i++: Verhoogt de waarde van i met 1 na elke loop.
for(vari=0;i<players.length;i++){console.log(players[i].name+' has a score of '+players[i].score);}
Creating a Class
Een klasse definieert de eigenschappen (variabelen) en gedragingen (methoden) die zijn objecten (instanties) zullen hebben.
classPlayer{name;score;level;constructor(name,score,level){this.name=name;this.score=score;this.level=level;}increaseScore(amount){this.score+=amount;}increaseLevel(){this.level++;}printDetails(){console.log(this.name+' has a score of '+this.score+' and is on level '+this.level);}}
Creating an Instance of a Class
varplayer1=newPlayer('John',100,2);
Accessing Class Properties
console.log(player1.name);// John
Inheritance in JavaScript
Inheritance stelt je in staat om een nieuwe klasse te maken die is gebaseerd op een bestaande klasse. De nieuwe klasse erft eigenschappen en gedrag van de ouderklasse.
Private variabelen (zoals #saldo) zijn alleen toegankelijk binnen de klasse waarin ze zijn gedefinieerd. Getters en Setters zijn speciale methoden die respectievelijk worden gebruikt om waarden van deze private variabelen op te vragen of in te stellen.
classBankRekening{#saldo;// Prive variabele
constructor(){this.#saldo=0;}getSaldo(){console.log("Saldo opvragen");returnthis.#saldo;}setSaldo(bedrag){if(bedrag>=0){this.#saldo=bedrag;}else{console.log("Ongeldig saldo");}}}constrekening=newBankRekening();console.log(rekening.getSaldo());// Saldo opvragen + het huidige saldo
rekening.setSaldo(-1000);// Ongeldig saldo
Door het gebruik van getters en setters kunnen we ervoor zorgen dat de regels voor toegang tot of wijziging van data worden nageleefd.