Presentation laddar. Vänta.

Presentation laddar. Vänta.

Klasser och objekt. Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 22 a:ClassOneb:ClassTwo svar := beräknaSumma(a,b)

Liknande presentationer


En presentation över ämnet: "Klasser och objekt. Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 22 a:ClassOneb:ClassTwo svar := beräknaSumma(a,b)"— Presentationens avskrift:

1 Klasser och objekt

2 Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 22 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

3 Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 33 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

4 Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 44 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.

5 Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 55 Klasser •Det finns ofta många objekt av samma typ •En klass är en beskrivning av objekt av samma typ

6 Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 66 Person Person(födelsedag : DateTime, namn : string, telefon : string) Telefon() : string Telefon(value : string) Namn () : string Födelsedag () : DateTime DagarTillNästaFödelsedag () : int födelsedag : DateTime namn : string telefon : string klassnamn attribut operationer Klass i UML

7 Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 77 eva : Person födelsedag = ” ” namn = ”Eva” telefon = ” ” Objekt i UML objektidentifierare:klassnamn attribut med ev värden

8 Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 88 hjärterDam:Kort färg = hjärter valör = dam ruterKung:Kort färg = ruter valör = kung spaderEss:Kort färg = spader valör = ess Tre instanser ur samma klass Kort färg valör

9 Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 99 Klasser är inte samlingar av objekt •En kortlek är ett objekt i vilken ingår ett antal kort- objekt hjärterDam:Kort färg: hjärter valör: dam ruterKung:Kort färg: ruter valör: kung spaderEss:Kort färg = spader valör = ess :Kortlek korten : Kort[52] En samling av objekt är inte en klass utan det är ett objekt i sig

10 Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 10 Samlingar av objekt är inte klasser class Kort { string färg; string valör; } class Kortlek { Kort[] korten = new Kort[52]; }..de är objekt i sig! Klasser är inte heller samlingar av objekt. Klasser är ”mallar” för objekten. Ett arrayobjekt

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

12 Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 12 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

13 Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 13 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();...

14 Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 14 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()); }

15 Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 15 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)…

16 Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 16 System PersonTest evaA:Person X Main ( ) new(födelsedag : DateTime, namn : string, telefon : string) Telefon(value : string) Console WriteLine( tfn ) tfn = Telefon() : string Sekvensdiagram i UML using System; class PersonTest { public static void Main( ) { } Person evaA = new Person(new DateTime(1980, 12, 24), "Eva", " "); Person evaB = evaA; evaB.Telefon = " "; string tfn = evaA.Telefon; Console.WriteLine("Telefon: " + tfn);

17 Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 17 Klasser: Protokoll •Den samling operationer ett objekt har •Endast meddelanden i protokollet får sändas till ett objekt :Dokument skrivUt() författare() status() protokoll (interface)

18 Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 18 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”

19 Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 19 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 )

20 Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 20 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

21 Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 21 Attribut • Beskriver objektens egenskaper och tillstånd • Ett attribut i en konceptuell modell skall vara enkla attribut eller datavärden • Attributens typer kan exempelvis vara av typen: bool, DateTime, Number, string • Andra attributtyper kan vara exempelvis: Adress, Personnummer, Telefonnummer


Ladda ner ppt "Klasser och objekt. Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 22 a:ClassOneb:ClassTwo svar := beräknaSumma(a,b)"

Liknande presentationer


Google-annonser