De presentatie wordt gedownload. Even geduld aub

De presentatie wordt gedownload. Even geduld aub

Overloading My name is overloading, cause we are many.

Verwante presentaties


Presentatie over: "Overloading My name is overloading, cause we are many."— Transcript van de presentatie:

1 Overloading My name is overloading, cause we are many.

2 Achterliggende concepten 1) Het begrip overloading 2) Signatuur van een methode 3) Het begrip ambiguïteit

3 Overloading: wat? Mensentaal: het “overladen” van een methode betekent: in één klasse meerdere methoden met dezelfde naam hebben. Mensentaal: het “overladen” van een methode betekent: in één klasse meerdere methoden met dezelfde naam hebben. Probleem: hoe weet de Java compiler welke methode te kiezen? (illustreren) Probleem: hoe weet de Java compiler welke methode te kiezen? (illustreren)

4 Antwoord: signatuur Bij aanroepen van een methode kan Java de volgende eigenschappen automatisch zien: Bij aanroepen van een methode kan Java de volgende eigenschappen automatisch zien:

5 Antwoord: signatuur Bij aanroepen van een methode kan Java de volgende eigenschappen automatisch zien: Bij aanroepen van een methode kan Java de volgende eigenschappen automatisch zien: - naam van de methode

6 Antwoord: signatuur Bij aanroepen van een methode kan Java de volgende eigenschappen automatisch zien: Bij aanroepen van een methode kan Java de volgende eigenschappen automatisch zien: - naam van de methode - aantal parameters - aantal parameters

7 Antwoord: signatuur Bij aanroepen van een methode kan Java de volgende eigenschappen automatisch zien: Bij aanroepen van een methode kan Java de volgende eigenschappen automatisch zien: - naam van de methode - aantal parameters - aantal parameters - type van de parameters - type van de parameters

8 Antwoord: signatuur Bij aanroepen van een methode kan Java de volgende eigenschappen automatisch zien: Bij aanroepen van een methode kan Java de volgende eigenschappen automatisch zien: - naam van de methode - aantal parameters - aantal parameters - type van de parameters - type van de parameters De combinatie van deze drie eigenschappen vormt de signatuur van de methode. De combinatie van deze drie eigenschappen vormt de signatuur van de methode.

9 Antwoord: signatuur Om een onderscheid te kunnen maken tussen twee methoden, moet de signatuur van om het even welke twee methoden in dezelfde klasse in minstens 1 punt van de signatuur verschillen. Om een onderscheid te kunnen maken tussen twee methoden, moet de signatuur van om het even welke twee methoden in dezelfde klasse in minstens 1 punt van de signatuur verschillen. Bemerk dat het type van de terugkeerwaarde geen verschil uitmaakt (!) Bemerk dat het type van de terugkeerwaarde geen verschil uitmaakt (!)

10 Voorbeelden De signatuur van de methode: De signatuur van de methode: public void paint(Graphics g) { …}

11 Voorbeelden De signatuur van de methode: De signatuur van de methode: public void paint(Graphics g) { …} is is

12 Voorbeelden De signatuur van de methode: De signatuur van de methode: public void paint(Graphics g) { …} is ispaint(Graphics)

13 Voorbeelden De signatuur van de methode: De signatuur van de methode: public void init( ) { … }

14 Voorbeelden De signatuur van de methode: De signatuur van de methode: public void init( ) { … } is

15 Voorbeelden De signatuur van de methode: De signatuur van de methode: public void init( ) { … } is init( )

16 Voorbeelden De signatuur van de methode: De signatuur van de methode: public Button maakKnop(String txt, int x, int y) { … }

17 Voorbeelden De signatuur van de methode: De signatuur van de methode: public Button maakKnop(String txt, int x, int y) { … } is

18 Voorbeelden De signatuur van de methode: De signatuur van de methode: public Button maakKnop(String txt, int x, int y) { … } is maakKnop( String, int, int )

19 Ambiguïteit Wat is het? Wat is het?

20 Ambiguïteit Oorsprong: Latijn: “vatbaar voor meerdere interpretaties”. Oorsprong: Latijn: “vatbaar voor meerdere interpretaties”.

21 Ambiguïteit Wat is het? Wat is het? Oorsprong: Latijn: “vatbaar voor meerdere interpretaties”. Oorsprong: Latijn: “vatbaar voor meerdere interpretaties”. Met andere woorden: 2 methoden met dezelfde signatuur zijn ambigu. Met andere woorden: 2 methoden met dezelfde signatuur zijn ambigu.

22 Ambiguïteit Wat is het? Wat is het? Oorsprong: Latijn: “vatbaar voor meerdere interpretaties”. Oorsprong: Latijn: “vatbaar voor meerdere interpretaties”. Met andere woorden: 2 methoden met dezelfde signatuur zijn ambigu. Met andere woorden: 2 methoden met dezelfde signatuur zijn ambigu. Ambiguë methoden zorgen voor een compilatiefout (vertaling: niet doen dus). Ambiguë methoden zorgen voor een compilatiefout (vertaling: niet doen dus).

23 Oefeningen Zijn de methoden, waarvan de methodehoofdingen hieronder gegeven zijn, overloade versies van dezelfde methode, of ambigu? Zijn de methoden, waarvan de methodehoofdingen hieronder gegeven zijn, overloade versies van dezelfde methode, of ambigu?

24 public int berekenSom( int getal1, int getal2 ) public int berekenSom( int getal1, int getal2, int getal3)

25 public int berekenSom( int getal1, int getal2 ) public int berekenSom( int getal1, int getal2, int getal3) Signaturen:berekenSom( int, int ) berekenSom( int, int, int )

26 public void schrijfDatum( int maandNummer ) public void schrijfDatum( int jaarNummer )

27 public void schrijfDatum( int maandNummer ) public void schrijfDatum( int jaarNummer ) Signaturen: schrijfDatum( int ) schrijfDatum( int )

28 public int schrijfDatum( int maandNummer ) public void schrijfDatum( int jaarNummer )

29 public int schrijfDatum( int maandNummer ) public void schrijfDatum( int jaarNummer ) Signaturen: schrijfDatum( int ) schrijfDatum( int )

30 public int verschil( int getal1, int getal2 ) public double verschil( double getal1, double getal2 )

31 public int verschil( int getal1, int getal2 ) public double verschil( double getal1, double getal2 ) Signaturen: verschil( int, int ) verschil( double, double )

32 public void paint( Graphics g) public void paint( )

33 public void paint( Graphics g) public void paint( ) Signaturen: paint( Graphics ) paint( )

34 public int product(int getal1, int getal2 ) public double product(int getal1, int getal2 )

35 public int product(int getal1, int getal2 ) public double product(int getal1, int getal2 ) Signaturen: product( int, int ) product( int, int )

36 public void init( ) public void Init( )

37 public void init( ) public void Init( ) Signaturen: init( ) Init( )

38 public void maakKnop(String txt, int x, int y) public void maakKnop(String txt, int x, int y, Color voorgrond, Color achtergrond )

39 public void maakKnop(String txt, int x, int y) public void maakKnop(String txt, int x, int y, Color voorgrond, Color achtergrond ) Signaturen:maakKnop( String, int, int ) maakKnop( String, int, int, Color, Color )

40 public void maakKnop(String txt, int x, int y) public void maakKnop(int x, int y, String txt)

41 public void maakKnop(String txt, int x, int y) public void maakKnop(int x, int y, String txt) Signaturen: maakKnop( String, int, int ) maakKnop( int, int, String )

42 public int drukAf( String maand, String jaar) public int drukAf( String maand )

43 public int drukAf( String maand, String jaar) public int drukAf( String maand ) Signaturen: drukAf( String, String ) drukAf( String )


Download ppt "Overloading My name is overloading, cause we are many."

Verwante presentaties


Ads door Google