Objektorienteret programmering

Slides:



Advertisements
Lignende præsentationer
Fokusgruppe Hvad er en fokusgruppe?
Advertisements

KONFLIKTHÅNDTERING Velkommen! Dias.
Få besked når der sker noget nyt KFUM-Spejderne i Danmark Udarbejdet af Ib Rævdal, 13. april 2009.
©Jenny Bohr – Til underviserne Her er valgt at vise filmen ”et liv i kaos”. Hvis kursisterne er unge, kan man vælge en anden film eks. ”det.
BIOANALYTIKERES KERNEFAGLIGHED OG PROFESSIONSIDENTITET
I dag er temaet Visualisering
FOKUS! På vores udvikling.
Web 2.0 Teoretisk viden.
Anette Schjødt Thorsen
– Sådan virker det! Dit elektroniske postsystem Ved Arne Crown Rasmussen
DProg2 E Programmering 2 dProg2 E2010
Engelbert H – og den sidste chance
Introduktion til objektorientering
KONCEPT Klasser og objekter En klasse beskriver et World ArrayList
Collectionklasser Klassifikation og anvendelse. Collections Motivation –hvorfor bruge collections? Realisering af en-til-mange relationer –Importer, erklær,
Gør det simpelt Trænings planlægning.
GP 4, 19/ Grundlæggende programmering Efterår 2001 Forelæsning 4 onsdag 19/ kl. 9:15 – 12:00.
Fagets Informations Teknologi Introduktion til Programmering i Java For Industri, Global Forretningsudvikling, samt fri studie aktivitet ved Bent Thomsen.
Introduktion til programmering
Afdelingsleder Morten Freil
Kursus om borger.dk og brugen af digital signatur
UOPFORDREDE ANSØGNINGER
Dagens program Præsentation af os Præsentation af kurset samt praktisk info (herunder hjemmeside, køb af kompendium, eksamen m.m.) Præsentation.
Forelæsning 3.1 Collections Javas for-each løkke
Opfølgning på obligatorisk opgave 1 ONK1. Ingeniørhøjskolen i Århus Slide 2 af 14 Overordnet Generelt rigtigt fine opgaver –Mange fyldt med gode overvejelser.
Videregående pc-vejledning Modul 07: Elektronisk post 60+Bornholm.
Oversigt Oplæg til projektuge Greenfoot gallery Program for næste uge
Forelæsning 5.1 Brug af klassen Collections og interfacet Comparable samt parametriserede typer Projektuge: Ants and Spiders / Lommeregner dIntProg,
 Jan Pries-Heje Slide no.: 1Introduktion til IT-platforme og organisation Introduktion til IT-platforme og Organisation Efteråret 2003 Underviserne: Rune.
1 Kursusafslutning. 2 Plan Opgaveseminar Kursusevaluering.
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)
Opfølgning på Dygtig Skildpadde (Michael) To algoritmeskabeloner findEn findAlle Primitive typer (forfremmelse og begrænsning) Identitet versus lighed.
GP 4, 27/ Grundlæggende programmering Forår 2002 Forelæsning 4 onsdag 27/ kl. 9:15 – 12:00.
Forelæsning 7.1 – repetition
Introduktion til programmering Kursusintroduktion Greenfoot.
DAIMIIntroducerende objektorienteret programmeringIntro.1 Introducerende Objekt-Orienteret Programmering Efterår 2000.
 Jens Bennedsen 2002Objektorienteret systemudvikling To syn på verden Aristotelisk vs. prototypisk syn.
Introduktion til programmering Repetition - ArrayList.
Eksamen Praktisk prøve.
Objektorienteret programmering – begrebsmodellering.
DAIMIIntroducerende objektorienteret programmering1B.1 Skildpadder Modeller, objekter og opførsel.
Introduktion til objektorientering OO, Java og BlueJ.
Introduktion til programmering Kursusoversigt. dIntProg, F08Kursusintroduktion.2 dIntProg Forelæsninger –Fire timer om ugen –Mandag samt fredag.
Introduktion til programmering Kursusoversigt. dIntProg, E08Kursusintroduktion.2 Mål (fra kursusbeskrivelsen) Deltagerne skal ved afslutning af kurset.
Jesper Mosegaard Multimedie Programmering E2003 MMProg uge46 Ancestor.
 Jens Bennedsen 2001Multimedie programmering4.1 Definition af begreber Interface, implements, klasse.
 Jens Bennedsen 2001Multimedie programmering1.1 Skildpadder Modeller, objekter og opførsel.
 Jens Bennedsen 2001Multimedie programmering3B.1 Specifikationer Betingelser, specifikationer og JavaDoc.
Velkommen Formålet med denne workshop er At teste forskellige former for teknologiunderstøttelse ved etablere af samarbejde på hospitaler. Målet med dette.
Velkommen Formålet med denne workshop er At teste forskellige former at teknologiunderstøtte etablere af samarbejde på hospitaler. Målet med dette er:
Tutankhamons Grav Et modellerings eksempel
DAIMIIntroducerende objektorienteret programmering15A.1 Eksamen…
Objektorienteret programmering – begrebsmodellering
 Jens Bennedsen 2001Multimedie programmering Introduktion og velkomst.
Eksamen Praktisk prøve.
Skabelon til udarbejdelse af YoungCRM Årshjul
01.1 Mathiassen, Munk-Madsen, Nielsen & Stage, 2001 © Objektorienteret Analyse & Design (OOA&D) Grundbegreber, principper og metode Kapitel 1.
Forelæsning Uge 1 – Torsdag
Introduktion til objektorientering
Forelæsning Uge 1 – Mandag
Forelæsning Uge 3 – Mandag
Forelæsning Uge 3 – Mandag
Forelæsning Uge 1 – Torsdag
Dokumentation.
Innovation.
Velkommen til Introduktion til Programmering
Modul 07, Elektronisk post
Forelæsning Uge 2 – Mandag
Præsentationens transcript:

Objektorienteret programmering Forelæsning 1.2 Objektorienteret programmering Java er et OO programmeringssprog BlueJ og Greenfoot er programmeringsomgivelser for Java

Praktiske ting Mail sendes til jer på adressen årskortnr@post.au.dk Det er vitalt, at I ser de mails, som vi og instruktorerne sender til jer. Videresend efter behov til anden mail-adresse (al post fra AU). Opgave 1.1.1 fra ugeoversigten beskriver hvordan man videresender. I skal installere Java 8 JDK, BlueJ og Greenfoot Hvis I har problemer med ovenstående, så spørg jeres instruktor og/eller medstuderende. Læs kursets web-sider og følge med i de nyheder, der kommer på web-boardet Herunder ugebrevene, som indeholder vigtig information om, hvad der sker på kurset i den pågældende uge. dIntProg, E14

Problemløsning i hverdagen Hvis min bil går i stykker, har jeg et problem; hvad gør jeg for at løse det? Henvender mig på et bilværksted og forklarer dem hvori problemet består. Overlader bilen til værkføreren og får den tilbage i repareret stand nogen tid efter. Hvad har jeg gjort for at løse mit problem? Fundet en passende agent eller serviceudbyder. Overbragt agenten en meddelelse om mit problem. Det er blevet agentens ansvar at løse problemet på mine vegne. Agenten har en metode til at løse problemet, men den behøver jeg ikke at kende til. dIntProg, E14

Problemløsning i hverdagen Samme princip hvis jeg skal sende blomster til min farmor i Svendborg Henvender mig til min lokale blomsterhandler med en meddelelse der indeholder information om hvilke blomster jeg ønsker samt min farmors adresse, og så sker det hele bag kulisserne. Formodentlig ved at blomsterhandleren videregiver min meddelelse til en anden blomsterhandler i Svendborg der sørger for at fremskaffe blomsterne, binde en buket og få dem sendt ud til min farmor. dIntProg, E14

Pointe 1: Delegering til agenter Afkobling Agenters valg af metode er ikke mit problem; tværtimod er der stor fleksibilitet i, at vi ikke blander os i agenters (eksempelvis blomsterhandleres eller værkføreres) metoder. Agenter er fri til at anvende en vilkårlig fremgangsmåde, blot de leverer en løsning på problemet – det er deres ansvar. Hvad vs. Hvordan dIntProg, E14

Pointe 2: Forskellige typer af agenter Agenten er modtager af min meddelelse og dermed en nødvendig betingelse for at problemet bliver løst. Hver slags (type) agent har sine metoder som er specifikke for netop den service han kan tilbyde. Havde jeg henvendt mig til værkføreren med mit blomster- problem ville han sikkert have givet en besked tilbage om, at han ikke har nogen metode til at løse problemet. dIntProg, E14

Pointe 3: Om benyttelse af metaforer i OO En af fordelene ved OOP er benyttelsen af metaforer fra dagligdagen. En OO-programmør kan tænke på sit program som nogle objekter der opfører sig på bestemte måder og har visse ansvar at leve op til trække på et væld af erfaringer fra dagligdagen og herved få ideer til strukturering af det samlede program. dIntProg, E14

Kristen Nygaard om objektorientering Et program er en model, der simulerer opførslen af en del af verden (reel eller imaginær). OO-modellering beskriver virkeligheden ved hjælp af fænomener og begreber. Fænomener  objekter Begreber  klasser. Kristen Nygaard, 1926-2002 grundlægger af OO modellering og programmering (Ole-Johan Dahl) gæsteprofessor på AU i en årrække og havde meget stor betydning for opbygningen af Institut for Datalogi Nygaard-bygningen i IT-parken er opkaldt efter ham dIntProg, E14

UML: Et grafisk specifikationssprog Diagramtyper Klassediagrammer Objektdiagrammer Sekvensdiagrammer … Klassediagram Sekvensdiagram Objektdiagram dIntProg, E14

Forskellige typer agenter (blomster) Blomsterhandler Bud 1 * levér bindBuket indbetal bringUd UML Klassediagram dIntProg, E14

Interaktion mellem agenter (blomster) Mig Alexandra Blomster Quist Blomster Bud-Johnny Farmor levér(b,a,p) levér(b,a,p) bindBuket(b) bringUd(b,a) overbring(b) UML Sekvensdiagram dIntProg, E14

Forskellige typer agenter (mekaniker) IMekaniker reparer(bil) Værkfører fix(bil) skrivFaktura EMekaniker reparer(bil) checkKarburator reparerKarburator * 1 1 * * 1 CPUTester testCPU(bil) UML Klassediagram dIntProg, E14

Interaktion mellem agenter (mekaniker) Mig Værkfører IMekaniker CPUTester EMekaniker fix(bil) reparer(bil) testCPU(bil) check Karburator reparer(bil) UML Sekvensdiagram reparer Karburator skrivFaktura dIntProg, E14

Garage projekt i BlueJ Demo dIntProg, E14

Oprettelse af objekter i BlueJ og Java + ≈ dIntProg, E14

Metodekald i BlueJ og Java ≈ dIntProg, E14

Modellering af studieadministration Begreber Klasser (Fænomener  Objekter) Studerende (Rasmus, Stine, Søren, ...) Fag (dIntProg, Perspektiverende kursus, MM-æstetik, ...) Lærer (Michael Caspersen, Kurt Jensen, …..) Lokale (Aud. E, Aud. F, Koll. G3, Stibitz-113, ...) Prøveform (praktisk, mundtlig, skriftlig, projekt, ...) Karakter (bestået, ikke bestået, udeblevet, 7, ...) dIntProg, E14

OO-model for studieadministrationssystem Studerende * 1 Karakter * Lærer * * Fag * 1 Lokale * * Prøveform Domæne Model dIntProg, E14

Modellering af elektroniske patientjournaler (EPJ) Begreber Klasser (Fænomener  Objekter) Patient (Joachim B. Olsen, Dr. Margrethe II, ...) Behandling (forbinding, ro, fysioterapi, ...) Diagnose (forstuvet håndled, brækket ben, gulsot, ...) Operation (fjernelse af blindtarm, sterilisation, fedtsugning, ...) Læge (Jesper Hogaard, Lis Vinge Madsen, ...) Sygeplejerske (Jane Clemensen, Bente Aarslev, ...) dIntProg, E14

OO-model for EPJ-system Patient * Diagnose * 1 * Læge Behandling ... Overlæge Reservelæge Domæne Model dIntProg, E14

Modellering af musikafspiller, f.eks. iTunes Find eksempler på begreber og tilhørende fænomener (klasser og objekter) Skriv forslagene ind under forelæsningen. dIntProg, E14

OO-model for musikafspiller, f.eks. iTunes Klassediagram: Player * Playlist * Track time name artist album rating playcount lastPlayed dateAdded releaseDate ... add(Playlist p) remove(Playlist p) void import(...) void export(...) ... void add(Track t) void remove(Track t) List<Track> search(String s) void shuffle() void sort(...) void burnToDisc() ... Skriv forslagene ind under forelæsningen. dIntProg, E14

Indholdet af kurset dIntProg Objektorienteret programmering Java (BlueJ og Greenfoot) Modeldrevet programmering Programmeringsopgaver tager udgangspunkt i simple OO-modeller (klassediagrammer og sekvensdiagrammer), som realiseres i Java Klassediagrammerne er vores specifikationssprog Java er vores implementationssprog Målet er praktiske kompetencer mht. programmering Problemløsning ”in the small” Standardløsninger på standardproblemer (mønstre) Eksamen er en individuel praktisk prøve ved computer Programmering kræver øvelse Øv jer indtil tingene sidder på rygmarven dIntProg, E14

Resten af denne forelæsning Kigge på forskellige BlueJ og Greenfoot projekter: BlueJ: Dato (date) BlueJ: Person Greenfoot: Krabbe + orm + hummer (afleveringsopgave uge 2a) BlueJ: Raflebæger med to terninger (afleveringsopgave uge 2b) dIntProg, E14

Afleveringsopgave 2.1: Krabbe (Crab) I Greenfoot implementeres et system med 3 klasser: Krabbe (Crab) Bevæge sig fremad (når act eller run aktiveres). Dreje når den når kanten af verden. Løber i zig-zag (styret af en tilfældighedsgenerator). Orm (Worm) Kan ikke gøre noget (andet end at blive spist af en krabbe). Hummer (Lobster) Opfører sig på samme måde som krabber – bortset fra at de spiser krabber i stedet for orme.

Afleveringsopg: Krabbe (Crab) – fortsat Dernæst: Modificere krabben så dens løberetning kan styres via piletasterne på tastaturet ( og ) Vi har nu et lille computer spil, hvor I styrer en krabbe, som skal spise flest mulige orme, mens den selv undgår at blive spist af de farlige hummere. Afslutte spillet Hvis krabben bliver ædt af en hummer. Tilføje lyde Krabben siger SLUUUURP når den æder en orm og AUUURGH når den selv bliver ædt af en hummer. Demo

Afleveringsopg 2.2: Raflebæger (DieCup) I BlueJ implementeres et system med et raflebæger og to terninger Terning Raflebæger Demo Terning har to metoder: roll() som repræsenterer et kast med terningen. getEyes() som viser antal øjne. Raflebæger indeholder to terninger og har to metode: roll() som repræsenterer et kast med de to terninger. getEyes() som viser det samlede antal øjne på de to terninger.

Ingen forelæsning på mandag I stedet skal I selv studere: Videoerne 2.1, 2.2, 2.3, 3.1, 3.2, 3.3 fra BlueJ bogen Kapitel 2-3 fra BlueJ bogen Slide sættet: 03-klasser-og-objekter Kapitel 2-3 fra Greenfoot bogen