Præsentation er lastning. Vent venligst

Præsentation er lastning. Vent venligst

Jesper Mosegaard Multimedie Programmering E2003 MMProg uge46 Ancestor.

Lignende præsentationer


Præsentationer af emnet: "Jesper Mosegaard Multimedie Programmering E2003 MMProg uge46 Ancestor."— Præsentationens transcript:

1 Jesper Mosegaard Multimedie Programmering E2003 MMProg uge46 Ancestor

2 Jesper Mosegaard Multimedie Programmering E2003 Tema Sidste gang:  Statements i lingo  Lister  Metoder  Klasser  Associeringer af klasser Denne gang  Nedarvning og polymorfi i Lingo

3 Jesper Mosegaard Multimedie Programmering E2003 Tema i modelleringsperspektiv Klasser og statements Associeringer A AB A AB 110..* 1 A *

4 Jesper Mosegaard Multimedie Programmering E2003 Denne gang i et modelleringsperspektiv Specialiseringer  arver egenskaber metoder felt-variable A BC D 10..*

5 Jesper Mosegaard Multimedie Programmering E2003 Hunde-eksempel Antag at vi har lavet Dyr-klassen Se på Hund-klassen  Lingo  Java Dyr Hund

6 Jesper Mosegaard Multimedie Programmering E2003 Hunde-eksempel Klasse navnet

7 Jesper Mosegaard Multimedie Programmering E2003 Hunde-eksempel kælenavn felt-variabel

8 Jesper Mosegaard Multimedie Programmering E2003 Hunde-eksempel Konstruktør med argumenter

9 Jesper Mosegaard Multimedie Programmering E2003 Hunde-eksempel Nedarver fra Dyr Lidt anderledes i Lingo end Java

10 Jesper Mosegaard Multimedie Programmering E2003 Hunde-eksempel extends ~ ancestor

11 Jesper Mosegaard Multimedie Programmering E2003 Vigtigste forskel i specialisering I Lingo er super-klassen repræsenteret ved en instans af klassen  to objekter ved specialisering  Associering ancestor I Java arver vi ”blot” egenskaberne.  Et objekt ved specialisering Dyr Hund Dyr Hund klasse diagram objekt diagram ancestor

12 Jesper Mosegaard Multimedie Programmering E2003 Ancestor property property ancestor  Indeholder en instans af klassen vi nedarver fra  Er en normal property som vi kan skrive til og læse fra. Initialisere ancestor med et objekt  På samme måde som vi ellers ville initialisere en property

13 Jesper Mosegaard Multimedie Programmering E2003 Messages og Handlers Ancestor felt-variablen er speciel på to punkt:  Arver felt-variable fra ancestor (som vi kender fra Java)  Metode-kald sendes videre til ancestor objektet hvis ikke metoden findes i det aktuelle objekt messages (metode-kald)  beskeder til objekter handlers (metoder)  håndtere beskeder

14 Jesper Mosegaard Multimedie Programmering E2003 Metode-kald GravhundHundKødæderDyr ancestor> metode-kald ”SpisKød”

15 Jesper Mosegaard Multimedie Programmering E2003 Metode-kald GravhundHundKødæderDyr ancestor> metode-kald ”SpisKød” Er der sådan en metode i dette objekt ?

16 Jesper Mosegaard Multimedie Programmering E2003 Metode-kald GravhundHundKødæderDyr ancestor> metode-kald ”SpisKød” Er der sådan en metode i dette objekt ? nej

17 Jesper Mosegaard Multimedie Programmering E2003 Metode-kald GravhundHundKødæderDyr ancestor> metode-kald ”SpisKød” Er der sådan en metode i dette objekt ? nej Send metode-kaldet videre til ancestor

18 Jesper Mosegaard Multimedie Programmering E2003 Metode-kald GravhundHundKødæderDyr ancestor> metode-kald ”SpisKød”

19 Jesper Mosegaard Multimedie Programmering E2003 Metode-kald GravhundHundKødæderDyr ancestor> metode-kald ”SpisKød” Er der sådan en metode i dette objekt ? nej Send metode-kaldet videre til ancestor

20 Jesper Mosegaard Multimedie Programmering E2003 Metode-kald GravhundHundKødæderDyr ancestor> metode-kald ”SpisKød”

21 Jesper Mosegaard Multimedie Programmering E2003 Metode-kald GravhundHundKødæderDyr ancestor> metode-kald ”SpisKød” Er der sådan en metode i dette objekt ? ja ! Udfør metode-kaldet

22 Jesper Mosegaard Multimedie Programmering E2003 Variabel polymorfi En variabel kan indeholde objekter af en given type, samt alle subtyper.  I Lingo kan alle variable indeholde alle typer af objekter (ingen statiske typer)

23 Jesper Mosegaard Multimedie Programmering E2003 Metode polymorfi Kald af metode svarende til den dynamiske type.  I Java, check af metode-signatur på den statiske type.  I Lingo, ingen type-check. Vi prøver at kalde på objektet (dynamisk type). fejl: ”handler not defined”

24 Jesper Mosegaard Multimedie Programmering E2003 Lad os lave et specialiserings hierarki af personer Ja, det betyder DU skal være aktiv og sige noget Begreber ? Egenskaber ?

25 Jesper Mosegaard Multimedie Programmering E2003 Et større eksempel

26 Jesper Mosegaard Multimedie Programmering E2003 Model Hvad er der af begreber?  Pacman  Spøgelse  Vej  Mur  Spilleplade  Spisbar ting Hvordan ser modellen ud for pacman?

27 Jesper Mosegaard Multimedie Programmering E2003 Pacman model

28 Jesper Mosegaard Multimedie Programmering E2003 Funktionalitet Hvad skal der ske?  Spillet skal initialiseres Brættet skal tegnes Der skal placeres ghosts og pacman Der skal placeres points  For hver stepframe skal pacman og ghosts flyttes, og der skal checkes om der sker noget ved disse flytninger Hvis pacman og et ghost er på samme felt, dør pacman Hvis pacman er på et felt med et point, skal det spises

29 Jesper Mosegaard Multimedie Programmering E2003 Initialisering Lav en klasse der styrer spillet - GameController  Initialisering Skab pacman Skab spillepladen Skab grafikken Skab ghosts  Når to props møde hinanden Check om prop1 kan spise prop2 Check om prop2 kan spise prop1  Et moviescript (on startMovie) skaber et GameController objekt

30 Jesper Mosegaard Multimedie Programmering E2003 Flytninger Hvad skal der ske?  I hver stepframe skal creatures flytte sig og se hvad der sker ved det.  Hvordan beskriver vi det?  Objekt interaktion!

31 Jesper Mosegaard Multimedie Programmering E2003 Flyt - Pacman (1)

32 Jesper Mosegaard Multimedie Programmering E2003 addProp - Hallway


Download ppt "Jesper Mosegaard Multimedie Programmering E2003 MMProg uge46 Ancestor."

Lignende præsentationer


Annoncer fra Google