1 / 24

Introduktion til objektorientering

Introduktion til objektorientering. OO, Java og BlueJ. Plan. Time 1 Objekt-orienteret problemløsning BlueJ eksempel Time 2 Begreber og fænomener  klasser og objekter Modellering Øvelse: iTunes. Problemløsning i hverdagen (1).

Download Presentation

Introduktion til objektorientering

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Introduktion til objektorientering OO, Java og BlueJ

  2. Plan • Time 1 • Objekt-orienteret problemløsning • BlueJ eksempel • Time 2 • Begreber og fænomener  klasser og objekter • Modellering • Øvelse: iTunes

  3. Problemløsning i hverdagen (1) • 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.

  4. Problemløsning i hverdagen (2) • 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.

  5. 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.

  6. Pointe 2: Forskellige typer af agenter • Forskellige typer 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 havde nogen metode til at løse problemet.

  7. 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.

  8. UML: Et grafisk beskrivelsessprog • Diagramtyper • Klassediagrammer • Objektdiagrammer • Sekvensdiagrammer • … Klassediagram Sekvensdiagram Objektdiagram

  9. Interaktion mellem agenter 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)

  10. Forskellige typer agenter Blomsterhandler Bud levér bindBuket indbetal bringUd

  11. Interaktion mellem agenter Mig Værkfører IMekaniker EMekaniker CPUTester karburator Check reparer skrivFaktura reparer(bil) fix(bil) reparer(bil) testCPU(bil)

  12. Forskellige typer agenter Værkfører EMekaniker CPUTester IMekaniker fix(bil) skrivFaktura reparer(bil) checkKarburator reparer testCPU(bil) reparer(bil)

  13. I BlueJ

  14. BlueJ og Java – Oprettelse af Objekter + ≈

  15. BlueJ og Java – Metodekald

  16. Kristen Nygaard om objektorientering En programudførelse betragtes som et fysisk modelsystem der simulerer opførslen af en reel eller imaginær del af verden. Fysisk modellering er baseret på opfattelse af virkeligheden i ter-mer af fænomener og begreber. Et fysisk modelsystem konstrue-res ved at modellere fænomener som objekter og begreber som klasser. Kristen Nygaard, 1926-2002

  17. Modellering, begreber og fænomener (1) • Studieadministration • Studerende (Rasmus, Stine, Søren, ...) • Fag (dIntProg, Perspektiverende kursus, MM-æstetik, ...) • Underviser (mec, gudmund, olavb, ...) • Lokale (Aud. E, Koll. G3, Stibitz-113, ...) • Prøveform (praktisk, mundtlig, skriftlig, projekt, ...) • Prøveresultat (bestået, ikke bestået, udeblevet, 13, ...)

  18. Modellering, begreber og fænomener (2) • Elektroniske patientjournaler (EPJ) • 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, ...)

  19. Modellering, begreber og fænomener (3.1) • Musikafspiller, f.eks. iTunes • Find eksempler på begreber og tilhørende fænomener

  20. Model for studieadministrationssystem Studerende * 1 Karakter * 1 * * * Lærer Fag Lokale * * Prøveform Domæne

  21. Model for EPJ-system * Patient Diagnose * 1 * Læge Behandling ... Overlæge Reservelæge Domæne Model

  22. Modellering, begreber og fænomener (3.2) • Musikafspiller, f.eks. iTunes • Giv bud på relevante klasser og relationer mellem disse • Giv bud på funktionalitet og ansvarsplacering heraf

  23. Player Playlist Track time name artist album rating playcount lastPlayed dateAdded releaseDate ... * * Modellering, begreber og fænomener (3.3) • Musikafspiller, f.eks. iTunes • Udsnit af klassemodel for iTunes void add(Track t) void remove(Track t) List<Track> search(String s) void shuffle() void sort(...) void burnToDisc() ... add(Playlist p) remove(Playlist p) void import(...) void export(...) ...

  24. dIntProg • Objektorienteret programmering • Java • Modeldrevet programmering • programmeringsopgaver tager udgangspunkt i simple OO-modeller som realiseres i Java • Målet er praktiske kompetencer mht. Programmering • problemløsning ”in the small” • standardløsninger på standardproblemer (mønstre) • individuel praktisk prøve ved computer • Programmering er en kontaktsport • Øv jer!

More Related