Herhaling - overloaded methodes


Herhaling / overloaded methodes

Herhaling voor de opdrachten - OOP in C# (CSD-II)

Les 1 - Herhaling

1 / 13
volgende
Slide 1: Tekstslide
newEditorApplicatie- en mediaontwikkelaarMBOStudiejaar 2

In deze les zitten 13 slides, met interactieve quizzen en tekstslides.

time-iconLesduur is: 60 min
Dit is niet oké

Onderdelen in deze les


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

2

m

00

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?