Download præsentationen
Præsentation er lastning. Vent venligst
Offentliggjort afNora Overgaard Redigeret for ca. et år siden
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
Lignende præsentationer
© 2024 SlidePlayer.dk Inc.
All rights reserved.