Introduktion. Den objektorienterade modellen Grundläggande begrepp Klass Klassen som abstraktion

Relevanta dokument
Introduktion till arv

Träning i bevisföring

Väga paket och jämföra priser

Vi skall skriva uppsats

Klasser och objekt i C#

ANVÄND NAVIGATIONEN I CAPITEX SÄLJSTÖD

Frågor och svar för föreningar om nya ansökningsregler för aktivitetsbidrag från och med 1 januari 2017

NATIONELLA MATEMATIKTÄVLING

Tränarguide del 1. Mattelek.

PRÖVNINGSANVISNINGAR

Vetenskapliga begrepp. Studieobjekt, metod, resultat, bidrag

Kampanj kommer från det franska ordet campagne och innebär att man under en tidsbegränsad period bedriver en viss verksamhet.

PBL om tidsbegränsade bygglov m.m

Särskilt stöd i grundskolan

Boll-lek om normer. Nyckelord: likabehandling, hbt, normer/stereotyper, skolmiljö. Innehåll

Personlig assistans med Kiruna Kommun som assistansanordnare

Distribuerade Informationssystem VT-04

Exempel på tentamensuppgifter i LMA100, del 1

Skriva B gammalt nationellt prov

ELEV- HANDLEDNING (Ansökan via webben)

Mätningar på op-förstärkare. Del 3, växelspänningsförstärkning med balanserad ingång.

Två konstiga klockor

Vad är en einfrastruktur för eförvaltning? einfrastruktur: Insatsområde 2

Föreläsning 8: Räkning. Duvhålsprincipen. Kombinatorik

Syftet med en personlig handlingsplan

När du som vårdpersonal vill ta del av information som finns hos en annan vårdgivare krävs det att:

Manual HSB Webb brf

Riktlinjer - Rekryteringsprocesser inom Föreningen Ekonomerna skall vara genomtänkta och välplanerade i syfte att säkerhetsställa professionalism.

4-3 Vinklar Namn: Inledning. Vad är en vinkel?

Kiwiböckerna metod och begrepp

Introduktion till Open 2012

För dig som är valutaväxlare. Så här följer du reglerna om penningtvätt i din dagliga verksamhet INFORMATION FRÅN FINANSINSPEKTIONEN

Partnerskapsförord. giftorättsgods görs till enskild egendom 1, 2. Parter 3. Partnerskapsförordets innehåll: 4

Efter att du har installerat ExyPlus Office med tillhörande kartpaket börjar du med att göra följande inställningar:

Krigsreportage inbo rdeskriget i Bosnien

Användarvänlighet och tillgänglighet Workshop II

Individuellt Mjukvaruutvecklingsprojekt

Riktlinjer för medborgardialog

KUPOL en studie om skolmiljöns betydelse för ungdomars hälsa ENKÄT TILL ELEVER I ÅRSKURS 9

Anpassning av sjukpenninggrundande inkomst (SGI) efter löneutvecklingen inom yrkesområdet för arbetslösa

Skolinspektionen Nyanlända 2016

Idag. Hur vet vi att vår databas är tillräckligt bra?

Systematiskt kvalitetsarbete

Nämnarens adventskalendern 2007

Denna talesmannapolicy gäller tillsammans med AcadeMedias kommunikationspolicy. I kommuniaktionspolicyn finns följande formulering:

Kapitel 6. f(x) = sin x. Figur 6.1: Funktionen sin x. 1 Oinas-Kukkonen m.fl. Kurs 6 kapitel 1

Bygg ditt eget dataspel på sommarlovet!

Boken om Teknik. Boken om Teknik är en grundbok i Teknik för åk 4 6.

Kommunikationspolicy i korthet för Lidingö stad

Utveckla arbetsmiljö och verksamhet genom samverkan

FAQ Barnkonsekvensanalys i Svenska kyrkan

Planering - LPP Fjällen år 5 ht-16

a n = A2 n + B4 n. { 2 = A + B 6 = 2A + 4B, S(5, 2) = S(4, 1) + 2S(4, 2) = 1 + 2(S(3, 1) + 2S(3, 2)) = 3 + 4(S(2, 1) + 2S(2, 2)) = = 15.

Statsbidrag för läxhjälp till huvudmän 2016

Intyg om erfarenhet och lämplighet att undervisa som lärare i gymnasieskolan

Handledning för digitala verktyg Talsyntes och rättstavningsprogram. Vital, StavaRex och SpellRight

Kurs: Svenska som andraspråk Kurskod: GRNSVA2 Verksamhetspoäng: 1000

Svensk författningssamling

Sammanfattning på lättläst svenska

FRÅN A TILL Ö LäraMera Ab / och Allemansdata Ab / FRÅN A TILL Ö

konstanterna a och b så att ekvationssystemet x 2y = 1 2x + ay = b 2 a b

För unga vuxna Vuxenutbildning. Den svenska skolan för nyanlända

Från min. klass INGER BJÖRNELOO

UTMANINGAR OCH MÖJLIGHETER HAR DU 730 DAGAR OCH ETT STARKT DRIV DÅ HAR VI EN LEDARROLL TILL DIG

Creative Commons. en guide för lärare

Har vi lösningen för en bättre hemtjänst? Självklart.

DEMOKRATI 3 DEMOKRATINS VILLKOR

Hur skapar man formula r

Svenska som andraspråk, 1000 verksamhetspoäng

Index vid lastbilstransporter

Lathund, procent med bråk, åk 8

Arbetsbeskrivning, att förbereda för studenternas registrering kommande termin. 1. Studenter antagna på fristående kurs 2

Sektionen för Beteendemedicinsk smärtbehandling

Design by. Manual Jossan.exe. Manual. till programmet. Jossan.exe. E-post:

Avgifter i skolan. Informationsblad

GRUNDERNA I SJÄLVLEDARSKAP

Jo, Den Talande Boken har så många möjligheter inbyggda, att den kan användas från förskoleklassen och ända upp på högstadiet.

Sveriges Trafikskolors Riksförbund Film om körkort för nysvenskar Speakertext - Svensk

Del A Frågor om deltagande i tillsynskampanjen och dess resultat, från april 2009 t.o.m. att enkäten besvaras

Idag: Dataabstraktion

Mål Blå kurs Röd kurs

MRSA. Information till patienter och närstående

Det är bra om även distriktsstyrelsen gör en presentation av sig själva på samma sätt som de andra.

DOP-matematik Copyright Tord Persson. Bråktal Läs av vilka tal på tallinjen, som pilarna pekar på. Uppgift nr

Du ska nu skapa ett litet program som skriver ut Hello World.

Investera i förskolan

Instruktioner för beställning och kontoadministration för abonnenter av inlästa läromedel

Förskolan Vårskogen, Svaleboskogen 7. Plan mot diskriminering och kränkande behandling

Dash and Dot. Svårighetsgraden bestämmer du själv genom att välja någon av av de 5 appar som är kopplade till Dash & Dot.

Modul 6: Integraler och tillämpningar

Upplägg och genomförande - kurs D

Manpower Work Life: 2014:1. Manpower Work Life. Rapport Mångfald på jobbet

SF1625 Envariabelanalys

Kvalitetsredovisning Läsår

Sammanfatta era aktiviteter och effekten av dem i rutorna under punkt 1 på arbetsbladet.

Utbildningsplan för arrangörer

Tillsyn enligt personuppgiftslagen (1998:204) uppföljning av ärende om Sverigedemokraternas medlemsregister

Webb-bidrag. Sök bidrag på webben Gäller från

7. SAMHÄLLSORIENTERING ÅK 5

Energi & Miljötema Inrikting So - Kravmärkt

Transkript:

Introduktion Den objektorienterade modellen Grundläggande begrepp en som abstraktion er -objekt-attribut - metoder er Vad är ett objekt? Relationer mellan objekt/klasser Arv Arv (- är en) Multipelt arv Aggregat Association Användning Polymorfism Förutsättningar för polymorfism.. Persistence

Den objektorienterade modellen Grundläggande begrepp Nedanstående begrepp måste stödjas för att ett språk eller verktyg till fullo skall stödja den objektorienterade modellen; Abstraktion Inkapsling Arv Aggregat Association Polymorfism Beständighet (persistence) En klass är en beskrivning av olika objekt som har något gemensamt (av samma typ). en kan betraktas som en mall för vilka data, metoder och meddelanden som är giltiga för en viss typ av objekt. Ett objekt skapas när ett annat objekt tar emot ett meddelande om att detta ska ske. et skapas då enligt den beskrivning som finns i klassdefinitionen (mallen). et är en instans (förekomst) av klassen (typen). en som abstraktion När vi definierar en klass gör vi en förenkling av verkligheten. Vi gör en abstraktion där vi tar med sådant som är intressant just i det här fallet. Vi inför en abstrakt datatyp (ADT). Man väljer sedan vilken förenklingsgrad (abstraktionsnivå) som är lämplig vid varje tillfälle. Det är viktigt att klassens gränssnitt är väldesignat och kommer att kunna vara bestående. Denna process kan liknas vid vetenskaps-mannens strävan att systematisera verkligheten med ett speciellt perspektiv eller barnets (dvs människans) strävan att systematisera omvärlden för att kunna förstå den. er -objekt-attribut - metoder Inom ett problemdomän kan vi identifiera objekt som liknar varandra i avseende på utseende, uppförande, funktionalitet osv. De tillstånd och egenskaper som är intressanta och gemensamma för objekt som liknar varandra (är av samma typ) blir attribut och metoder. är de egenskaper som behövs för att beskriva varje objekts tillstånd. är meddelanden som vi

vill kunna skicka till ett objekt och som förändrar eller använder objektets attribut (och därigenom dess tillstånd). er Antag att vi i ett problemdomän identifierar objekt som har viss form, position, storlek och färg. Vi vill kunna skicka meddelande som resulterar i att objekten förflyttar sig, blir synliga och gömmer sig. Efter en analys finner vi att några av objekten kan hänföras till klasserna och Kvadrat. Med hänsyn till det system som vi skall konstruera är det viktigt dessa objekt har för position, storlek samt färg samt att man genom meddelanden kan be dessa visa, gömma samt flytta sig. objekt xpos ypos Radie Färg er Kvadrat xpos ypos Sida Färg x I ett traditionellt program är data passivt. För att åstadkomma något måste vi använda funktioner. Inom objektorientering kan objektet, som respons på ett meddelande agera med hjälp av sina egna metoder.vi använder orden metod, operation, meddelande, tjänst och medlemsfunktion som synonymer och vi kan t.v anta att vi hela tiden menar ungefär samma sak. Med hjälp av attribut bestämmer vi bl.a. objektets tillstånd. Vi väljer ofta att endast tillåta förändring av objektets attribut, och därigenom tillstånd, genom anrop av objektets metoder. Vi låter ofta attributen vara inkapslade och därigenom bli del av objektets interna struktur. Ett traditionellt program består av funktioner-procedurer och data. Ett objektorienterat program består av objekt. Ett objekt kan sedan innehålla data samt de funktioner (metoder) som ska kunna appliceras på data.

Traditionellt program Procedur orienterat program Meddelande metoder metoder Procedur Procedur metoder Vad är ett objekt? Ett objekt är något som existerar och är skapat enligt en mall (klass). Det kan finnas många objekt av samma typ (klass). Man använder också begreppet instans när man menar ett objekt. Ett objekt är en instansiering av en klass. Ett objekt kan skapas och sedan raderas. en finns kvar så att vi kan skapa nya objekt senare. En del objekt måste vara bestående (persistant) så att de finns kvar. När vi har definierat mallen kan vi börja använda den och skapa objekt. Lägg märke till att vi kan skapa flera objekt av samma typ. en skiljer sig i avseende på tillstånd men är ändå av samma typ. Kvadrat Sida Färg Radie Färg Kvadrat Sida 10 Färg Grön Kvadrat Sida 5 Färg Röd Radie 5 Färg blå Radie 15 Färg gul Meddelanden

Relationer mellan objekt/klasser Antag att vi har tre objekt av olika typ; A,B och C. Dessa kan vara relaterade till varandra på följande sätt: Arv (ett B är ett A) Multipelt arv (ett C är ett A och ett B) Aggregat (ett C består av ett A och B) Association (ett A kan ha en relation till ett B) Användning (ett A använder ett B) Arv Multipelt arv Aggregat A A B C B C A B Association/användning A 1 0,1 B Arv Genom arv kan den objektorienterade programmeraren konstruera nya klasser (subklasser) genom att låta dessa ärva egenskaper från någon annan klass (basklass). Programmeraren behöver sedan bara tillföra det som skiljer den nya subklassen från basklassen. I objekt (instanser) av den nya klassen finns sedan även de data, metoder och meddelanden som ingår i basklassen. Ibland finner vi att en klass är ett specialfall av en annan klass. Det är då vi kan använda arv och därigenom ärva egenskaper. Man brukar samla generella egenskaper i en basklass och sedan låta en subklass ärva och eventuellt tillföra ytterligare egenskaper.genom arv kan vi bygga upp mer eller mindre stora klasshierarkier. Det förekommer också att vi använder multipelt arv vilket betyder att en klass ärver av mer än en klass.

Kvadrat ärver från : Har ej basklass xpos ypos färg ärver från :Kvadrat Basklass Sida Ärvd Metod : Basklass Radie Ärvd Metod Arv (- är en) Arv kan gälla om det stämmer att ett objekt av subklasstyp ÄR ETT objekt av basklasstyp. Arv är alltid ett exempel på relationen generell-speciell. I föregående exempel gäller att subklasserna Kvadrat och är specialfall av typen som är basklass. En är en och en Kvadrat är en. I basklassen samlar vi gemensamma egenskaper. I subklasserna kan vi omdefiniera eller ärva attribut och metoder. Multipelt arv En klass kan ärva av flera andra klasser. I så fall gäller att ett objekt av subklasstypen är flera basklassobjekt samtidigt. Apparat Ärver av Radioapparat Kassettbandspelare Batteridriven apparat Ärver av Ärver av Batteridriven Kassettbandspelarradio Aggregat Aggregat kan gälla om relationen ÄR EN DEL AV är sann i avseende på ett objekt av en viss typ består av ett eller flera objekt av någon annan typ.

Persondator Transfor mator Moderkort Monitor Tangentbord CPU Minne CRT Transfor mator Mus Hårddisk Association Association erbjuder en något lösare koppling mellan objekt än arv och aggregat som alltid är mer tvingande. Exempel: Om vi skall relatera begreppen fabrik, arbetare, fabriksbyggnad och maskiner kan resultatet bli att fabriken och arbetarna har en ömsesidig association medan maskinerna är en del av fabriken (aggregat). Arbetare arbetar på (0..1) har anställda (0..n) Fabrik Byggnad Maskiner Användning Det kan också vara så att objekt av en viss typ temporärt kräver att få använda andra objekt. Man brukar i sådana fall skilja på användning i gränssnitt (synligt) eller i implementation (ej synligt). Polymorfism Polymorfism är ett grekiskt ord som betyder har många skepnader. Inom biologin används begreppet för att beskriva att individer inom samma art (samma typ) uppvisar olika utseende. Inom kemin används begreppet polymorfa ämnen om ämnen som uppvisar olika skepnader. Kol är t.ex. polymorft genom att det förekommer både som grafit och diamant. Inom objektorientering använder vi polymorfism när vi kombinerar arv och dynamisk bindning. som härstammar från samma hierarki kan själva definiera och ansvara för responsen för ett meddelande. Polymorfism är ett centralt begrepp inom objektorientering och kanske tom. det mest betydelsefulla vid sidan av abstraktion.. Ett objektorienterat språk ska därför ha stöd för polymorfism. Om vi inte använder oss av polymorfism kommer vi att binda funktionsanrop vid kompilering/ länkning vilket betyder att vi får tidig bindning. Det betyder att vi vet exakt vilken

funktion som kommer att anropas. Tidig bindning utan polymorfism är det vi använt och använder med icke objektorienterade språk. Om vi använder polymorfism och skickar ett meddelande till ett objekt i vårt program kommer ett funktionsanrop att innebära ett anrop av objektets egen funktion. Vilken funktion som anropas beror på vilket objekt som tar emot vårt meddelande och dess typ. Eftersom objektets exakta typ ibland inte kan avgöras vid kompileringen kommer vi att få sen bindning. Vilken funktion som skall anropas avgörs först när vi exekverar programmet. Polymorfism bygger på att ett meddelande/en metod är giltig för flera typer av objekt som genom arv härstammar från samma hierarki och att objekten själva ansvarar för att definiera metoden. När vi skickar ett meddelande vill vi att det skall tas om hand av mottagaren och att rätt händelse skall inträffa. Utan polymorfism så är det sändaren (programmeraren/ användaren) som ansvarar för resultatet (att rätt funktion anropas). Om vi använder polymorfism så kommer vi att kunna lita på att det är mottagaren och mottagarens typ (objektets typ) som avgör vad det blir för resultat. Ett och samma meddelande får olika resultat beroende på vem (vilket objekt) vi skickar det till. Förutsättningar för polymorfism.. En förutsättning för polymorfism är att det finns en hierarki med minst två klasser och att basklassen har en funktion som subklasserna kan omdefiniera. Basklass Ärver Rektangel Subklasser Skickar vi meddelandet till ett objekt så blir det en cirkel och inte någon rektangel och omvänt.

Meddelande Resultat Resultat Persistence Vissa objekt är temporära och existerar under en kortare tid. Andra objekt är bestående (persistant=envis) och finns alltid eller under en längre tid. Om detta gäller i verkligheten måste vi också kunna använda denna egenskap i vårt system. Minne Bestående objekt finns på disk Temporära objekt finns bara i minnet Skivminne