Jesper Mosegaard Multimedie Programmering E2003 MMProg uge46 Ancestor.

Slides:



Advertisements
Lignende præsentationer
At Dividere.
Advertisements

At Dividere Decimaltal.
Game Maker 7. Sådan ser Game Maker ud når det startes op.
Velkommen til Softwarekonstruktion
07 – Kort om OO Introduktion.
KONCEPT Klasser og objekter En klasse beskriver et World ArrayList
Selve objektet versus referencen til objektet Nedarvning
Informationsteknologi B-A, HHX, 2005,
Objektorienteret programmering
09 – Arv og polymorfi i java
VOOP, 8 april Refleksion i objekt orienterede programmeringssprog Mandag 8/ Kasper Østerbye.
Arv Idéen i arv et at kunne genbruge gennem generalisering
04.1 Mathiassen, Munk-Madsen, Nielsen & Stage, 2001 © Struktur Oversigt, principper og teknikker Kapitel 4.
NOEA/IT - FEN1 Typeparametisering/Genericity Generics i.NET 2 og C#
Delphi og C++ Builder C++ Referencer og pointere.
Data Dictionary (databaser, del 7)
Begreber og Redskaber 5. Plan for idag Overblik over klasser,objekter,nedarvning –Repetition fra Dat A/Indledende programmering –Centrale begreber om.
MMP Model og Metode til Programudvikling – MMP 1 Kursusindhold: Modellering af postkontor Objekt Orienteret Programudvikling - OO* Unified Modelling.
Grundlæggende elementer i UML
ER-diagrammer Hvad er det? Og hvad bruges det til?
Eksempel på realisering af domænemodel
GP 8, 24/ Grundlæggende programmering Efterår 2001 Forelæsning 8 onsdag 24/ kl. 9:15 – 12:00.
Objekter og klasser Rasmus D. Lehrmann DM
DIEB4.1 Kursusgang 4 Oversigt: Sidste kursusgang Opgaver Aktivitet 2: Generer design (fortsat) Design af interaktionselementer.
Forelæsning 2.2 Tilstand og opførsel (repetition)
Begreber og Redskaber 4. Plan for idag Om metoder, parametre, returværdier Et par ord om objekt-orientering Håndkøring af programmer.
Begreber og Redskaber 3. Plan for idag Om metoder, parametre, returværdier Overblik over klasser,objekter,nedarvning Et par ord om objekt-orientering.
Objektorienteret programmering – UML2Java.  Jens Bennedsen 2001Multimedie programmering8.2 Indhold Klasser og associering til enkelt objekt –Programmering.
 Jens Bennedsen 2002Objektorienteret systemudvikling Design klasse model ”Klassemodellen på vej til kode”
Systemudvikling – Fra idé til kode.  Jens Bennedsen 2001Multimedie programmering9.2 Begrebsmodellering Problemspecifikke begreber Problem/vision vedrørende.
Jesper Mosegaard Multimedie Programmering E2003 MMProg uge45 GUI.
DAIMIIntroducerende Objektorienteret Programmering1 Polymorfi og nedarvning Motivation for arv og “mange former”
 1999, Henrik B. ChristensenIntroducerende objektorienteret programmering8A.1 Polymorfi og nedarvning Motivation for arv og “mange former”
 Jens Bennedsen 2001Multimedie programmering10A.1 Polymorfi og nedarvning Motivation for arv og “mange former”
DAIMIIntroducerende objektorienteret programmering4B.1 Typer og tilstand i Java Typer, tilstand, erklæring, variable, primitive datatyper, reference- og.
Klasser og objekter. dIntProg, E08Klasser og objekter.2 Grundbegreber Klasser og objekter –beskrivelse –oprettelse Attributter og metoder –tilstand –opførsel.
DAIMIIntroducerende objektorienteret programmering3B.1 Definition af klasser Klasseskelet, metoder, et eksempel: dato.
 Jens Bennedsen, 2003Introducerende objektorienteret programmeringinterfaces.1 Interfaces En ren kontrakt.
DAIMIIntroducerende objektorienteret programmeringkd.1 Definition af klasser Klasseskelet, metoder, et eksempel: dato.
 Michael E. Caspersen, 2000Introducerende objektorienteret programmering6A.1 Programmering med interfaces – en stak og en HP-regnemaskine push pop.
 Henrik Bærbak, 2000Introducerende objektorienteret programmering11B.1 Destilleret UML Oversættelse fra UML til Java.
DAIMIIntroducerende objektorienteret programmering4B.1 Grundlæggende og Reference Typer i Java Typer, tilstand, erklæring, reference- og værdi semantik,
Klassehierarkier Specialisering vha. subklasser. dIntProg, E05Klassehierarkier.2 Oversigt Eksempler på specialisering –Aktør, Koreograf, Skuespiller,
Indledende Programmering Uge 6 - Efterår 2006
Interfaces Afkobling af programkomponenter (eksempel: Comparable)
Polymorfi Abstrakte klasser, substitutionsprincippet, statisk og dynamisk type.
 Jens Bennedsen 2001Multimedie programmering13.1 Lingo Objectorienteret Lingo.
Kari Rye Schougaard, Ph.d.-stud. Værktøjer og Teknikker, 2006 A A R H U S U N I V E R S I T E T DATALOGISK INSTITUT Java på 20 minutter (eller lidt mere)
 Jens Bennedsen 2001Multimedie programmering11.1 Lingo Basis.
Design af brugerflader13.1 Kursusgang 13 Oversigt: Sidste kursusgang Beskrivelser af komponenter Typiske komponenter Arkitektur for en GUI.
DAIMIIntroducerende Objektorienteret Programmering8A.1 Polymorfi og nedarvning Motivation for arv og “mange former”
Programmering med interfaces – en stak og en HP-regnemaskine push pop.
 Jens Bennedsen 2001Multimedie programmering10B.1 Interfaces En ren kontrakt.
 Jens Bennedsen 2001Multimedie programmering4.1 Definition af begreber Interface, implements, klasse.
DIEB8.1 Kursusgang 8 Oversigt: Sidste kursusgang Beskrivelser af komponenter Typiske komponenter Arkitektur for en GUI.
 Jens Bennedsen 2001Multimedie programmering1.1 Skildpadder Modeller, objekter og opførsel.
 Jens Bennedsen 2001Multimedie programmering14.1 Lingo Inside LingoLand.
 Jens Bennedsen 2001Multimedie programmering3A.1 Definition af klasser Klasseskelet, metoder, et eksempel: dato.
Klasser og objekter. dIntProg, F08Klasser og objekter.2 Grundbegreber Klasser og objekter –beskrivelse –oprettelse Attributter og metoder –tilstand –opførsel.
Jesper Mosegaard Multimedie Programmering E2003 MMProg uge45 Associeringer.
Introduktion til programmering Repetition. dIntProg, F08Repetition.2 dIntProg Sidste forelæsning (12/10) –kort tilbagemelding på evaluering –repetition.
Jesper Mosegaard Multimedie Programmering E2003 MMProg uge44 Java til Lingo Klasser, statements og lister.
Virkefeltsregler i Java int i; int j; int k; i = i+j; String t; Sequence s; int i; int j; Sequence s; String s; int i; int j;
DAIMI, AUIntroducerende objektorienteret programmering11A.1 Destilleret UML Oversættelse fra UML til Java.
DAIMIIntroducerende objektorienteret programmering15A.1 Eksamen…
Objecter Introduktion Webintegrator HF1 PHP Object orienteret.
Klasser og objekter (Afsnit i manualen).
Dokumentation.
Programmering.
Forelæsning Uge 4 – Torsdag
Præsentationens transcript:

Jesper Mosegaard Multimedie Programmering E2003 MMProg uge46 Ancestor

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

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

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

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

Jesper Mosegaard Multimedie Programmering E2003 Hunde-eksempel Klasse navnet

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

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

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

Jesper Mosegaard Multimedie Programmering E2003 Hunde-eksempel extends ~ ancestor

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

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

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

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

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

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

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

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

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

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

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

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)

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”

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 ?

Jesper Mosegaard Multimedie Programmering E2003 Et større eksempel

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?

Jesper Mosegaard Multimedie Programmering E2003 Pacman model

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

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

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!

Jesper Mosegaard Multimedie Programmering E2003 Flyt - Pacman (1)

Jesper Mosegaard Multimedie Programmering E2003 addProp - Hallway