 Jens Bennedsen 2001Multimedie programmering13.1 Lingo Objectorienteret Lingo.

Slides:



Advertisements
Lignende præsentationer
Velkommen til Softwarekonstruktion
Advertisements

07 – Kort om OO Introduktion.
KONCEPT Klasser og objekter En klasse beskriver et World ArrayList
Object-Orienteret Programmering og Design. 2 Nordjyllands Erhvervakademi – 2009 Indhold “Classes, objects and object-oriented programming (OOP) play a.
Selve objektet versus referencen til objektet Nedarvning
Objektorienteret programmering
Mapning af 1 til mange forbindelser
Forelæsning 3.1 Collections Javas for-each løkke
Indledende Programmering Uge 8 - Efterår 2006 Mere om abstraktioner Susanne Lindros.
Interfaces – brug. Overblik Tidligere: –Interfaces Comparable gør det muligt at bruge Collections metoderne –min, max, sort, … –Algoritmemønstre Find.
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.
Forelæsning 5.1 Brug af klassen Collections og interfacet Comparable samt parametriserede typer Projektuge: Ants and Spiders / Lommeregner dIntProg,
Objekter og klasser Rasmus D. Lehrmann DM
Repetition: Introduktion til OOP med C# og .NET
FEN IntroJava AAU1 Endnu mere om Klasser og Objekter Mange til mange relationer Student-Course v3.
Forelæsning 7.1 – repetition
Effective Java Blå gruppe. Item 18: Interfaces frem for abstrakte klasser Kan implementeres i klasser der ikke nedarver Eksisterende klasser kan nemt.
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.
 Jens Bennedsen 2002Objektorienteret systemudvikling GRASP mønstre Basale ansvarsplaceringsregler.
Variabler, klassevariabler, identitet og lighed, collections
Klassevariable- og metoder Tilstand og opførsel på klasseniveau.
 Jens Bennedsen 2002Objektorienteret systemudvikling Persistens.
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.
 Jens Bennedsen 2002Objektorienteret systemudvikling Design -> kode Mapning af et klassediagram til kode.
Klasser og objekter. dIntProg, E08Klasser og objekter.2 Grundbegreber Klasser og objekter –beskrivelse –oprettelse Attributter og metoder –tilstand –opførsel.
 Jens Bennedsen, 2003Introducerende objektorienteret programmering MVC Et mønster for grænseflader.
 Jens Bennedsen, 2003Introducerende objektorienteret programmeringinterfaces.1 Interfaces En ren kontrakt.
 Michael E. Caspersen, 2000Introducerende objektorienteret programmering6A.1 Programmering med interfaces – en stak og en HP-regnemaskine push pop.
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
I o p o DAIMI, AU, Marts 1999Introducerende objektorienteret programmering5B.1 Et lille banksystem Modellering ved hjælp af UML.
Interfaces Afkobling af programkomponenter (eksempel: Comparable)
Objektorienteret analyse og design Ó Bennedsen 2001 Design - part Programmering og systemudvikling Lektion 7 Design - part 2.
 Jens Bennedsen 2001Multimedie programmering MVC Et mønster for grænseflader.
 Jens Bennedsen 2001Multimedie programmering11.1 Lingo Basis.
Programmering med interfaces Separering af specifikation, anvendelse og implementation.
DAIMIIntroducerende Objektorienteret Programmering8A.1 Polymorfi og nedarvning Motivation for arv og “mange former”
Klasser og objekter – grundbegreber.  Michael E. Caspersen, 2001Introducerende objektorienteret programmeringKlasser og objekter.2 Klasser og objekter.
Programmering med interfaces – en stak og en HP-regnemaskine push pop.
Collectionklasser Klassifikation og anvendelse. dIntProg, F08Collectionklasser.2 Samlinger af objekter Objektreferencer –for at holde fast i et objekt.
Interfaces – hvorfor, hvad og hvordan?.  Michael E. Caspersen 2003IOOPInterfaces.2 Oversigt Interfaces, hvorfor –Separering af specifikation (interface)
 Jens Bennedsen 2001Multimedie programmering10B.1 Interfaces En ren kontrakt.
Jesper Mosegaard Multimedie Programmering E2003 MMProg uge46 Ancestor.
 Jens Bennedsen 2001Multimedie programmering4.1 Definition af begreber Interface, implements, klasse.
 Jens Bennedsen 2001Multimedie programmering14.1 Lingo Inside LingoLand.
Klassevariable- og metoder Funktionalitet på klasseniveau.
 Jens Bennedsen 2001Multimedie programmering3B.1 Specifikationer Betingelser, specifikationer og JavaDoc.
DAIMIIntroducerende objektorienteret programmering1 Et lille banksystem Modellering beskrevet ved et UML klassediagram.
 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.
 Jens Bennedsen 2002Objektorienteret systemudvikling Begrebsmodellering Hvordan får vi opbygget en domænemodel/begrebsmodel?
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;
DAIMIIntroducerende Objektorienteret Programmering8B.1 Interfaces En ren kontrakt.
Programmering med interfaces – en stak og en HP-regnemaskine push pop.
 Jens Bennedsen, 2003, revideret af EE Introducerende objektorienteret programmering MVC Et mønster for grænseflader.
Containerklasser – klassifikation og brug.  Michael E. Caspersen, 2003IOOPContainerklasser.2 Mange objekter Containerklasser –antag at man skal repræsentere.
Objecter Introduktion Webintegrator HF1 PHP Object orienteret.
Præsentationens transcript:

 Jens Bennedsen 2001Multimedie programmering13.1 Lingo Objectorienteret Lingo

 Jens Bennedsen 2001Multimedie programmering13.2 Til mange associering Tidligere så vi på følgende model: Den realiserede vi på følgende måde: public class Customer { public Customer(String name) { this.name=name; accounts = new java.util.HashSet(); } public List getAccounts() {return accounts;} public void addAccount(Account a) { accounts.add(a); }... private Set accounts; }

 Jens Bennedsen 2001Multimedie programmering13.3 Lister i Lingo I Lingo er der også en liste type [ ] Som vanligt er den utypet Der er - som vi kender det fra Collection - en række operationer på lister: –Tilføjelse: l.add(val), l.addAt(pos,val), l.append(val) –Slette: l.deleteAll(), l.deleteAt(pos), l.deleteOne(value) –Tilgå: l[index], l[index1..index2], l.getPos(value),l.getLast() –Diverse: l.count(), l.max(), l.min Husk at en Lingo liste starter i position 1 i modsætning til java’s Collection

 Jens Bennedsen 2001Multimedie programmering13.4 LingoBank Modellen kan derfor realisers som følger i Lingo:

 Jens Bennedsen 2001Multimedie programmering13.5 LingoBank Konto Kunde Modellen kan derfor realisers som følger i Lingo: property balance property customer on new me, Pcustomer customer = Pcustomer balance = 0 return me end on withdraw me, Pamount balance = balance - Pamount end on deposit me, Pamount balance = balance + Pamount end on getBalance me return balance end property name property accounts on new me, Pname name = Pname accounts =[] return me end... on addAccount me, Paccount accounts.add(Paccount) end on getAccounts me return accounts end

 Jens Bennedsen 2001Multimedie programmering13.6 Specialisering Det er muligt i Lingo at lave en art superklasse - en klasse kan have en ancestor Det er en property, der kan sættes til at pege på et objekt af superklassen Det er derfor ikke arv som i Java men nærmere komposition: Subklassen ancestor superklassen

 Jens Bennedsen 2001Multimedie programmering13.7 Eksempel Det koster chequePrice ekstra hver gang der hæves property chequePrice property ancestor on new me, Pcustomer, PchequePrice ancestor = script("Account").new(Pcustomer) chequePrice = PchequePrice return me end on withdraw me, amount ancestor.balance = ancestor.balance - amount - chequePrice end

 Jens Bennedsen 2001Multimedie programmering13.8 Opgave Hvordan vil en ”lånekonto” se ud –Det koster to procent af beløbet der hæves, dog mindst X kr, hvis saldoen er negativ, ellers ikke noget

 Jens Bennedsen 2001Multimedie programmering13.9 Et større eksempel

 Jens Bennedsen 2001Multimedie programmering13.10 Model Hvad er der af begreber? –Pacman –Spøgelse –Vej –Mur –Spilleplade –Spisbar ting Hvordan ser modellen ud for pacman?

 Jens Bennedsen 2001Multimedie programmering13.11 Pacman model

 Jens Bennedsen 2001Multimedie programmering13.12 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 chedckes 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

 Jens Bennedsen 2001Multimedie programmering13.13 Initialisering Lav en klasse der styrer spillet - GameController –Initialisering –Når to props møde hinanden –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

 Jens Bennedsen 2001Multimedie programmering13.14 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!

 Jens Bennedsen 2001Multimedie programmering13.15 Flyt - Pacman (1)

 Jens Bennedsen 2001Multimedie programmering13.16 addProp - Hallway

 Jens Bennedsen 2001Multimedie programmering13.17 Hvad med grænsefladen? Der sker en opdetaring i modellen, den skal afspejles i grænsefladen? MVC! PacmanObserver, GhostObserver, PropObserver

 Jens Bennedsen 2001Multimedie programmering13.18 CreatureObserver global xFactor global yFactor property spriteObject on new me, spriteNo, h, w spriteObject=sprite(spriteNo)... return me end on update me, pObservable spriteObject.locH= xFactor*(pObservable.placementBlock.x-1) + xFactor*0.5 spriteObject.locV= yFactor*(pObservable.placementBlock.y-1) + yFactor*0.5 if pObservable.dead then --slet end if end

 Jens Bennedsen 2001Multimedie programmering13.19 Opsamling Lingo begreb: Parent scripts Child objects. Property variables Handlers Ancestor scripts OO begreb: Klasser Instanser/objekter Attributtter Metoder Super klasse