Oefenopdrachten
Oefen met de concepten die je deze week hebt geleerd. Deze opdrachten zijn gebaseerd op de lesstof uit de PowerPoints.
Tip
Oefentoetsen ga je in dit vak zelf thuis of in de bibliotheek maken! Uitlegvideo's staan online op Brightspace!
OOP Begrippen Benoemen
MakkelijkBekijk de volgende code en benoem alle OOP onderdelen:
class Auto:
def __init__(self, merk, kleur):
self.merk = merk
self.kleur = kleur
self.snelheid = 0
def versnel(self):
self.snelheid += 10
mijn_auto = Auto("Tesla", "rood")
Vragen:
- Wat is de klasse?
- Wat is de constructor?
- Noem alle attributen
- Noem de methode(s)
- Wat is het object?
Bekijk antwoorden
- Klasse: Auto
- Constructor: def __init__(self, merk, kleur)
- Attributen: merk, kleur, snelheid
- Methode: versnel()
- Object: mijn_auto
Waarom OOP?
MakkelijkBeantwoord de volgende vragen over OOP:
- Noem drie redenen waarom OOP wordt gebruikt.
- Leg uit wat bedoeld wordt met "OOP representeert entiteiten in de echte wereld".
- Wat is het verschil tussen een klasse en een object?
Bekijk antwoorden
- Drie redenen: Herbruikbaar (vermindert repetitieve code), Structuur, Representeert entiteiten in de echte wereld
- Entiteiten: OOP stelt je in staat om dingen uit de echte wereld te modelleren in code. Bijvoorbeeld: een Hond-klasse kan echte honden representeren met hun eigenschappen (naam, gewicht) en gedrag (rennen, blaffen).
- Verschil: Een klasse is de blauwdruk/bouwtekening, een object is een specifieke instantie van die klasse. Bijvoorbeeld: Hond is de klasse, Bella en Kees zijn objecten.
Constructor Aanpassen
GemiddeldPas de Hond-class aan zodat deze ook een leeftijd attribuut heeft. De leeftijd moet worden meegegeven bij het aanmaken van een object.
class Hond:
def __init__(self, naam, hoogte, gewicht):
self.naam = naam
self.hoogte = hoogte
self.gewicht = gewicht
self.energie_level = 100
Bekijk antwoord
class Hond:
def __init__(self, naam, hoogte, gewicht, leeftijd):
self.naam = naam
self.hoogte = hoogte
self.gewicht = gewicht
self.leeftijd = leeftijd
self.energie_level = 100
# Voorbeeld gebruik:
hond_bella = Hond("Bella", 70, 28, 5)
Methode Toevoegen
GemiddeldVoeg een methode blaf() toe aan de Hond-class. De methode moet de tekst "Woef! Ik ben [naam]!" returnen.
Bekijk antwoord
def blaf(self):
return f"Woef! Ik ben {self.naam}!"
# Gebruik:
hond_bella = Hond("Bella", 70, 28)
print(hond_bella.blaf()) # Output: Woef! Ik ben Bella!
Eigen Klasse Maken
MoeilijkMaak een eigen klasse Student met de volgende onderdelen:
- Attributen: naam, studentnummer, studie
- Een methode
introduceer()die een string returnt met de introductie van de student
Maak vervolgens twee Student-objecten aan.
Bekijk antwoord
class Student:
def __init__(self, naam, studentnummer, studie):
self.naam = naam
self.studentnummer = studentnummer
self.studie = studie
def introduceer(self):
return f"Hallo, ik ben {self.naam}. Ik studeer {self.studie}."
# Objecten aanmaken
student1 = Student("Jan", "12345", "ADSAI")
student2 = Student("Lisa", "67890", "ADSAI")
print(student1.introduceer())
# Output: Hallo, ik ben Jan. Ik studeer ADSAI.
Self Begrijpen
GemiddeldLeg in je eigen woorden uit wat self doet in een Python class. Waarom is het nodig?
Bekijk antwoord
self verwijst naar het huidige object. Het is nodig omdat:
- Een klasse kan meerdere objecten hebben (bijv. hond_bella en hond_kees)
selfzorgt ervoor dat de juiste attributen van het specifieke object worden gebruikt- Als hond_bella.ren() wordt aangeroepen, weet Python door
selfdat het om Bella's energie_level gaat, niet die van Kees
Quiz & Open vragen (Makkelijk / Normaal / Moeilijk)
Quiz (Makkelijk)
MakkelijkWat is het verschil tussen een class en een object? Antwoord: Een class is een blauwdruk; een object is een concrete instantie van die class.
Open vraag (Normaal)
Normaalclass Student:
def __init__(self, naam, leeftijd):
self.naam = naam
self.leeftijd = leeftijdOpen vraag (Moeilijk)
Moeilijkdef verjaardag(self):
self.leeftijd += 1
return self.leeftijd