Wk7a - Interfaces

Interfaces
CSD-III
1 / 30
suivant
Slide 1: Diapositive
Applicatie- en mediaontwikkelaarMBOStudiejaar 2

Cette leçon contient 30 diapositives, avec quiz interactif et diapositives de texte.

time-iconLa durée de la leçon est: 60 min

Éléments de cette leçon

Interfaces
CSD-III

Slide 1 - Diapositive

Cet élément n'a pas d'instructions

Herhaling

Slide 2 - Diapositive

Cet élément n'a pas d'instructions

Return-type
Aanroepen
Access-modifier
Naam
Parameters
Returnen

Slide 3 - Question de remorquage

Cet élément n'a pas d'instructions

Naam
Parameters
in 📥
Return-type
uit 📤

Slide 4 - Diapositive

Cet élément n'a pas d'instructions

Constructor
  • Speciale methode zonder return-type
  • Exact dezelfde naam als de klasse
  • Uitgevoerd bij maken nieuwe instantie

Slide 5 - Diapositive

Cet élément n'a pas d'instructions

Interfaces

Slide 6 - Diapositive

Cet élément n'a pas d'instructions

Slide 7 - Diapositive

Deze code kennen we uit de MyMan-opdracht. Beiden updaten. Veel DRY'er kan niet toch?
👍

Slide 8 - Diapositive

Cet élément n'a pas d'instructions

Slide 9 - Diapositive

Eén Bouncer is saai. We maken er meer.
🤔

Slide 10 - Diapositive

Niet DRY!

Slide 11 - Diapositive

Oké dit is al beter

Slide 12 - Diapositive

Maar wacht... er komen in de game nog veel meer dingen dan alleen Player en Bouncer. En die moeten allemaal geüpdatet worden.
👎

Slide 13 - Diapositive

Niet opgeruimd en netjes. Niet DRY!

Slide 14 - Diapositive

Maar het zijn allemaal andere types, dus we kunnen niet één lijst maken...
Hoe stoppen we al deze dingen in één lijst?

Slide 15 - Diapositive

Maar het zijn allemaal andere types, dus we kunnen niet één lijst maken...
Hoe stoppen we al deze dingen in één lijst?

Door af te spreken dat ze allemaal 100% zeker een Update-methode bevatten.

Slide 16 - Diapositive

Maar het zijn allemaal andere types, dus we kunnen niet één lijst maken...
Hoe stoppen we al deze dingen in één lijst?

Door af te spreken dat ze allemaal 100% zeker een Update-methode bevatten.

Dat doen we met een
Interface.

Slide 17 - Diapositive

Maar het zijn allemaal andere types, dus we kunnen niet één lijst maken...
Hoe stoppen we al deze dingen in één lijst?

Door af te spreken dat ze allemaal 100% zeker een Update-methode bevatten.

Dat doen we met een
Interface.

Slide 18 - Diapositive

Of toch wel? Op deze manier zal het lukken!
Inhoudelijk is aan de klasses niets veranderd.

Ze hádden al een Update-methode.

Maar nu is de Update verplicht!

Slide 19 - Diapositive

Of toch wel? Op deze manier zal het lukken!
Inhoudelijk is aan de klasses niets veranderd.

Ze hádden al een Update-methode.

Maar nu is de Update verplicht!

Slide 20 - Diapositive

Kijk! De methode is even weggehaald als demonstratie, en er komt meteen een error.
Dus...
C# weet nu 100% zeker dat al deze klasses een Update-methode zullen bevatten.

Slide 21 - Diapositive

Of toch wel? Op deze manier zal het lukken!
C# weet nu 100% zeker dat al deze klasses een Update-methode zullen bevatten.

Daarom mogen ze nu wél samen in een lijst!

Slide 22 - Diapositive

Of toch wel? Op deze manier zal het lukken!
C# weet nu 100% zeker dat al deze klasses een Update-methode zullen bevatten.

Daarom mogen ze nu wél samen in een lijst!

Slide 23 - Diapositive

Cet élément n'a pas d'instructions

C# weet nu 100% zeker dat al deze klasses een Update-methode zullen bevatten.

Daarom mogen ze nu wél samen in een lijst!

Slide 24 - Diapositive

Cet élément n'a pas d'instructions

👍

Slide 25 - Diapositive

Dit is heel mooi DRY!
Interface is een soort klasse, met
alleen maar methode-definities.

Slide 26 - Diapositive

Cet élément n'a pas d'instructions

Klasses kunnen inheriten van een Interface. Klasse
moet dan alle afgesproken methodes implementeren.

Slide 27 - Diapositive

Cet élément n'a pas d'instructions

Interface is daarna te gebruiken als data-type, net als klasses zelf.

Omdat is vastgelegd dat de klasses aan de interface voldoen.

Slide 28 - Diapositive

Dit is heel mooi DRY!
Interfaces - samengevat
  • Interface is een contract, klasse kan dat implementeren
  • Interface bevat alleen maar methode-definities
  • Naam van Interface begint altijd met 'I'
  • Klasse kan 'inheriten' van interface en moet dan alle methodes hebben uit de interface.
  • Belangrijkste voordeel: objecten van verschillende klasses in één lijst stoppen.

Slide 29 - Diapositive

Cet élément n'a pas d'instructions

Opdracht
MyMan (zie week 6):
  • Stap 15 t/m 18
  • Klaar? Dan ook laatste deel 'screensize'

Voorbeelden als support:

Slide 30 - Diapositive

Cet élément n'a pas d'instructions