Presentation laddar. Vänta.

Presentation laddar. Vänta.

Objektorientering. Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 22 Inledning Objektorienterad programmering.

Liknande presentationer


En presentation över ämnet: "Objektorientering. Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 22 Inledning Objektorienterad programmering."— Presentationens avskrift:

1 Objektorientering

2 Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 22 Inledning Objektorienterad programmering är inte bara tillägg till programmeringsspråk, det är snarare ett nytt sätt att tänka Objektorienterad programmering ser på ett program som en grupp av agenter, kallade objekt. Varje objekt har ansvaret för en specifik uppgift. Ett objekt är en inkapsling av tillstånd ( attribut ) och beteenden ( operationer ), tillsammans kallade egenskaper. Beteendet för objekt bestäms av objektets klass. Ett objekt visar sitt beteende genom att utföra en metod (jfr med funktion eller procedur) som svar på ett meddelande. Objekt och klasser utvidgar tankarna kring ”abstrakta datatyper” (ADT), genom möjligheterna till arv.

3 Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 33 Objektorientering En grundteknik kan byggas på och anpassas kan appliceras på olika slags system kan användas vid olika teknikområden konsistent modellspråk i alla utvecklingsfaser Definition: Objektorientering är ett grundläggande sätt att betrakta systemutveckling som ändrar den tidigare uppdelningen i data och funktioner till en enhetlig modell i objekt (innehållande både data och funktioner), relationer mellan objekt och samarbete mellan objekt

4 Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 44 En objektorienterad process är iterativ analys, design, konstruktion och test upprepade gånger (analys och design bör ta minst 1/3 av tiden) högre och högre detaljeringsgrad för varje iteration är inkrementell någonting synligt levereras efter varje iteration en delfunktion/komponent utvecklas (iterativt) systemet byggs på vartefter med fler delfunktioner/komponenter

5 Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 55 Förstudie Analys DesignUtveckling Implementation Inkrement Iterativ och inkrementell utveckling

6 Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 66 Vattenfall eller iterationer Planning Requirements Analysis Design Implementation Test Deployment Evaluation Programmering! Observera att programmeringen vanligvis blir mer ”integrerad” på detta sätt med den övriga systemutvecklingen när vi använder OO! Dvs, lite kodning i varje varv, för det som kommit fram i analys och design i varvet…

7 Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 77 Analys och design Den viktigaste delen i objektorienterad systemutveckling är analys och design Analys undersökning av problem och behov ”do the right thing” Design Konceptuell lösning för att uppfylla behovet ”do the thing right” OBS! Lösningen är inte detsamma som lösningens implementation!

8 Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 88 Analys och design Objektorienterad analys Hitta och beskriv objekt, klasser och andra koncept Objektorienterad design Detaljutforma klasserna för systemet, samt scheman för hur deras objekt samverkar Därefter börjar kodningen…

9 Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 99 En objektorienterad modell Hela systemet består av ett antal objekt Objekten i modellen svarar mot konkreta företeelser i användarens värld fastighetsobjekt telefonobjekt skrivarobjekt bilobjekt

10 Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 10 Ett objekt per förekomst

11 Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 11 Klasser och objekt Ett objekt är en instans av en klass. Hur ett objekt tillhandahåller en specifik tjänst (operation) definieras av vilken klass objektet är en instans av. Samtliga instanser av en specifik klass har samma metod (kod) för en specifik tjänst (operation), men för sina egna data.

12 Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 12 a:ClassOneb:ClassTwo svar := beräknaSumma(a,b) : int [svar] Vad är summan av 2 plus 3? 5! class ClassTwo { int beräknaSumma(int a, int b) { return a + b; } Meddelandesändning mellan objekt

13 Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 13 a:Personb:Person svar := FrågaNamn() : string [svar] Vad heter Du? Nisse! class Person { string namn; string FrågaNamn() { return namn; } Meddelandesändning mellan objekt

14 Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 14 Språkgenerationer Naturliga språk 4GL Högnivåspråk Assembler Maskinkod FORTRAN COBOL BASIC PASCAL C ADA JAVAC#C++ SMALLTALK APLALGOL FORTHLISP LOGOMODULA-3 EIFFEL PILOT PL/1 PROLOGRPGVB VB.NETMODULA-2 OBERON SIMULA Objektorienterade språk

15 Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 15 Objekt DataMetoder Data Metoder Objekt: data och metoder Dataorienterad programmering Funktionsorienterad programmering Objektorienterad programmering

16 Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 16 Vad är objekt? Bil Metoder (algoritmer) class Bil { string regnr; float liter; float km; } static float förbrukning (Bil b2) { return b2.liter/b2.km*10; } regnr liter km förbrukning() Data

17 Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 17 Objektorientering class Bil { string regnr; float liter; float km; } float förbrukning () { return liter/km*10; } Ett objekt innehåller variabler och metoder. Värdet av variablerna definierar objektets tillstånd och metoderna definierar objektets beteende. En klass är en “ritning” eller en “mall” som beskriver objekten. Klassen reserverar inget minnesutrymme för data utan varje objekt har sitt eget datautrymme. En klass beskrivs i programkoden medan objekten skapas och existerar under exekveringen av programmet.... Bil b2 = new Bil();...

18 Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 18 Objektet Bil regnr:string liter:float km:float forbrukning():float minBil:Bil Privat minne (för att lagra data) regnr = ”NHG 084” liter = 2977 km = Instruktioner (för att bearbeta data) float forbrukning () { return liter/km*10); } class BilTest { public static void Main (string[] args) { Bil minBil = new Bil(); minBil.regnr = ”NHG084”; minBil.liter = 2977; minBil.km = 61267; System.Console.WriteLine(minBil.forbrukning()); }

19 Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 19 Varje objekt har en livscykel Bil minBil = new Bil(“NHG084”); Vi instantierar ett objekt… Bil (string r) { regnr = r; } Konstruktorn körs… …och objektet är skapat. Därefter kan objektet förändras… …och tas bort… Bil minBil = null; …fast i Java eller C# tas objektet verkligen bort först när sopgubben (GC) varit framme (I C++ måste du själv agera sophanterare)…

20 Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 20 Meddelanden i ett objektorienterat system minBil:Bil kör(hastighet) Nisse:Person minBil.kör (”fort”); avsändare mottagare meddelande argument operation ”Metoden” är den kod som exekveras när just ”minBil” får meddelandet ”kör”

21 Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 21 Meddelandesändning class Person { Bil minBil = new Bil(); } class NisseTest { static void Main (string[] args) { Person Nisse = new Person(); } void åkTillJobbet () { minBil.kör(”fort”); } class Bil { } void kör (string hastighet) { // wrooom... } Nisse.åkTillJobbet(); primärminnet PersonBilNisse:PersonminBil:Bil Main( :string[] ) NisseTest åkTillJobbet()kör( :string )

22 Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 22 Objektet sett inifrån Varje metod är en sekvens av instruktioner som exekveras som svar på ett meddelande Det finns en metod för varje operation i protokollet Med ”objektets protokoll” avses den samling operationer ett objekt har Endast meddelanden i protokollet får sändas till ett objekt :Dokument Jag har dessa variabler skrivUt() författare() status() metoder attribut (privat minne) Kod för skrivUt() Kod för författare() Kod för status() operationer

23 Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 23 Kom ihåg att… Börja i rätt ände! Liksom i strukturerad programmering, är det genom att ”lösa problemet” innan kodningen. Analys och Design! Den strukturerade programmeringen kommer igen även i objektorienterad programmering. Vad skall den enskilda metoden i en klass göra? Löses med: Selektion Iteration Sekvens (som kan vara ett meddelande till ett annat objekt)


Ladda ner ppt "Objektorientering. Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 22 Inledning Objektorienterad programmering."

Liknande presentationer


Google-annonser