Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Processing intro course - les 6 : objecten

Processing intro course - les 6 : objecten

Tom Luyten

May 01, 2013
Tweet

More Decks by Tom Luyten

Other Decks in Education

Transcript

  1. Multimedia technologie Les 6: Objects Gebaseerd op het boek “Learning

    Processing” door Daniel Schiffman En de PowerPoint van Donald W. Smith
  2. LESSON 3: Organisation Objects (p. 121 à 137) •  Van

    structureel naar OOP •  Klassen •  Objecten •  Arguments doorgeven Les 6 : Objects
  3. Objecten zijn een manier om je programma te structuren. Tot

    nu toe hebben we altijd vanuit het programma gedacht. Bv. Een programma dat een monstertje tekent dat links en rechts botst. Dat hebben we al gestructureerd met functies Op zich is dat prima, maar als het programma ingewikkelder wordt geeft dit alsnog problemen en moeten we verder structureren. Van structureel naar OOP
  4. Tot nu toe hebben we altijd vanuit het programma gedacht.

    Bv. Een programma dat een monstertje tekent dat links en rechts botst. Dat hebben we gestructureerd in functies Van structureel naar OOP
  5. We hebben ook geleerd variabelen door te geven binnen een

    functie. Hiermee kunnen we bv. meerdere cirkels op verschillende plaatsen tekenen, Maar enkel statisch. Waarom enkel statisch? Van structureel naar OOP
  6. Waarom niet dynamisch? Op het einde van de functie wordt

    alles geledigd, want het zijn lokale variabelen. x en y dus altijd op 21, want als functie opnieuw wordt uitgevoerd, wordt opnieuw 20 ingevoerd. ( = lokale variabele) Van structureel naar OOP
  7. Dus als we meerdere, dynamische cirkels willen maken, op deze

    manier, Met globale variabelen Dat kan efficiënter, Maar dan moeten we anders gaan denken. Niet vanuit het programma, maar vanuit het object. Van structureel naar OOP
  8. Wat is nu een object? Laten we het “object mens”

    beschrijven. Hiervoor hebben we 2 zaken nodig: -  De data die “mens” beschrijft -  De functies die een mens heeft Van structureel naar OOP
  9. Het “object” mens: data functies grootte slapen gewicht opstaan haarkleur

    eten kleur ogen transport nemen/besturen geslacht Van structureel naar OOP
  10. Het “object” mens: data functies grootte slapen gewicht opstaan haarkleur

    eten kleur ogen transport nemen/besturen geslacht Hier hebben we eigen geen OBJECT, maar een KLASSE beschreven. Van structureel naar OOP
  11. Een klasse beschrijft het idee, Hiervoor hebben we ook het

    idee mens beschreven. Het is een template, waar objecten van kunnen worden afgeleid. Van de klasse mens kunnen object worden afgeleid die afzonderlijke, unieke mensen zijn. Afhankelijk van de lengte, grootte, etc… Van structureel naar OOP
  12. Klassen Terug naar ons voorbeeld. We gaan nadenken vanuit de

    cirkel. wat is de data? Wat zijn de functies?
  13. Klassen data en de functies voor ons cirkel voorbeeld Data

    Functies x coordinaat verplaatsen y coordinaat checken voor de rand + omkeren breedte tekenen hoogte
  14. Klassen Een klasse is een nieuw codeblok! !! !void setup(){!

    !}! ! !void draw(){! !}! ! !class Cirkel{ ! !… deze gaan we nu leren aanmaken! !}!
  15. Klassen ! int x;! int y;! int breedte;! int snelheid;!

    ! void setup(){! !x = 0;! !y = 100;! !breedte = 20;! !hoogte = 20;! }! ! void updateCirkel{! !x = x+snelheid;! }! …! class Cirkel {! !int x;! !int y;! !int breedte;! !int snelheid;! ! Cirkel(){! !x = 0;! !y = 100;! !breedte = 20;! !hoogte = 20;! }! ! void updateCirkel{! !x = x + snelheid! }! }! …! structureel object georiënteerd klasse naam data constructor functies
  16. Klassen class Cirkel {! !int x;! !int y;! !int breedte;!

    !int snelheid;! ! Cirkel(){! !x = 0;! !y = 100;! !breedte = 20;! !hoogte = 20;! }! klasse naam data constructor belangrijk om niet dadelijk je variabele te initiëren, maar pas in de constructor. Dit is later belangrijk, als we objecten willen maken die elk een apart uiterlijk of gedrag hebben.
  17. Objecten Maak oefening 8-2 op pagina 125 Vul de gaten

    in om een “Human” class te beschrijven en Maak een functie “sleep” aan.
  18. Objecten We hebben nu een klasse Cirkel aangemaakt, Maar om

    hiermee aan de slag te gaan, Moeten we objecten uit deze klasse aanmaken. Dit doen we in 3 stappen: 1.  bovenaan in de sketch declareren we het object 2.  In de setup initiëren we het object 3.  De functies van het object aanroepen
  19. Objecten Let op: we zijn nu niet meer in de

    tab van de klasse aan het werken, maar in ons hoofdprogramma
  20. Objecten Naast het aanroepen van functies door een punt tussen

    de naam van het object En de functie te plaatsen, Kan je ook variabelen van binnen het object opvragen Zo zal mijnCirkel.x de huidige waarde x van het object mijnCirkel weergeven.
  21. Objecten Hoe declareer ik het object mens? Hoe initieer ik

    daarna een object mens? Hoe roep ik de functie “slaap” functie van het object mens aan? In het hoofdprogramma:
  22. Arguments doorgeven We kunnen nu gemakkelijk verschillende cirkels maken (of

    auto’s in het boek) Al die auto’s functioneren nu op zichzelf, Maar ze zijn voorlopig nog allemaal hetzelfde. Herinner je je de functies zonder arguments? Ook aan objecten kunnen we arguments meegeven, zodat ze een unieke vorm Of een uniek gedrag vertonen. Dat is net de sterkte van object georienteerd programmeren. Als je 1 goede klasse ontwikkelt, kan je daar verschillende unieke en zelfstandig opererende objecten van afleiden.
  23. Arguments doorgeven Globale variabelen voor de klasse Cirkel, Overal in

    de klasse Cirkel te gebruiken. Tijdelijke variabelen, doorgegeven Vanuit de draw, wanneer je een object aanmaakt De tijdelijke waarde wordt overgezet Naar de globale variabele (het globale doosje dat geldt voor het hele object) mijnCirkel.x is nu dus de waarde van tempX, En is overal in de sketch als mijnCirkel.x op te vragen Nu kan je x,y, enz. Vrij gebruiken, De waarden worden altijd bijgehouden. De tempWaarden worden gereset bij het aanmaken van een nieuw object.
  24. Arguments doorgeven Vorm een team van 2 personen En maak

    oefening 8-5 op pagina 132 – 133 Waar je een eerder , structureel voorbeeld vertaalt naar object georiënteerd En het vervolgens aanvult. Tijd: 30min.