Herhaling / overloaded methodes
Herhaling voor de opdrachten - OOP in C# (CSD-II)
Les 1 - Herhaling
Herhaling / overloaded methodes
Herhaling voor de opdrachten - OOP in C# (CSD-II)
Les 1 - Herhaling
Waarom gebruiken we OOP
Wanneer gebruik je void in je methode
Wat is hier de parameter
Wat is hier de constructor
Kenmerken van een constructor
Heeft exact dezelfde naam als de klasse
Heeft geen return type - zelfs geen 'void'
Wordt nooit zelf aangeroepen zoals een gewone methode
Zet het object meteen in een complete, geldige beginstaat
Je mag er meerdere hebben, elk met andere parameters (net als overloaded methodes)
Wat is overloaded methode
m
s
Waarom een overloaded methode?
Het Probleem
Situatie: je wilt de gameSpeed soms standaard met 10% verhogen, soms met een vast bedrag
Zonder overloading: twee losse methodenamen voor hetzelfde idee
public void IncreaseGameSpeedDefault()
{
gameSpeed += gameSpeed * 0.1f;
}
public void IncreaseGameSpeedWithAmount(float amount)
{
gameSpeed += amount;
}
Het probleem: twee verschillende namen voor hetzelfde concept - verwarrend om te onthouden welke je moet gebruiken
De oplossing: Overloading
Zelfde methodenaam, andere parameters
De compiler kiest automatisch de juiste versie
Op basis van wat je meegeeft bij het aanroepen
Zo hoef je maar één naam te onthouden per concept
public void IncreaseGameSpeed()
{
gameSpeed += gameSpeed * 0.1f;
}
public void IncreaseGameSpeed(float amount)
{
gameSpeed += amount;
}
game.IncreaseGameSpeed(); // +10%
game.IncreaseGameSpeed(5f); // +5
Regels voor overloading
Zelfde methodenaam
Ander aantal parameters, of andere parametertypes
Alleen een andere return type is niet genoeg om te overloaden
De compiler kiest automatisch de juiste versie, op basis van wat je meegeeft
Werkt ook bij constructors: dat is precies wat je in Opdracht 3 doet
Een methode aanroepen
Gebruik het object, gevolgd door een punt en de methodenaam
Geef de argumenten mee tussen de haakjes - in de juiste volgorde en het juiste type
Geeft de methode iets terug? Dan kun je het resultaat opvangen in een variabele
Bij void hoef je niets op te vangen - de methode voert alleen een actie uit
Player player = new Player("Sam");
player.TakeDamage(10);
// void: geen return waarde
int level = player.GetLevel();
// int: return waarde opvangen
Console.WriteLine(level);
Tot nu gebruikte woorden
Methode (Engels: method) - een blok code met een naam dat je kan aanroepen om een taak uit te voeren
Constructor (Engels: constructor) - speciale methode die automatisch draait op het moment dat je een object aanmaakt met 'new'
Overloading (Engels: method overloading) - meerdere methodes (of constructors) met dezelfde naam, maar andere parameters
Parameter (Engels: parameter) - de waarde die je meegeeft aan een methode of constructor
Argument (Engels: argument) - de concrete waarde die je invult voor een parameter als je een methode aanroept
this (keyword) - verwijst naar het huidige object; gebruik je om een veld te onderscheiden van een gelijknamige parameter
❓ Vragen tot nu toe?