Operationer och metoder Objekt data och metoder Dataorienterad
Operationer och metoder
Objekt: data och metoder Dataorienterad programmering Funktionsorientera d programmering Data Metoder Objektorienterad programmering Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 2
Metodens signatur Ordet public anger att metoden är synlig utifrån, dvs att även andra program (klasser) kan anropa den. public { Ordet static anger att metoden är en klassmetod (statisk metod). Detta nyckelord utelämnas helt, om vi vill använda det för objekt. static int Om en metod skall returnera något måste rätt datatyp anges här. Om metoden inte lämnar något returvärde skriver man istället void. Metodens namn minsta. Talet Parametrar till metoden. Dessa fungerar inom metoden som lokala variabler. (int a, int b) if (a < b) return a; return b; } Kombinationen utav metodnamn, formella parametrar och returtyp, kallas för metodens ”signatur” Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 3
Klass i UML Person födelsedag : Date. Time namn : string telefon : string Person(födelsedag : Date. Time, namn : string, telefon : string) Telefon() : string Telefon(value : string) Namn () : string Födelsedag () : Date. Time Dagar. Till. Nästa. Födelsedag () : int Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur klassnamn attribut operationer 4
Objekt i UML eva : Person födelsedag = ” 1980 -12 -24” namn = ”Eva” telefon = ” 021 -101300” objektidentifierare: klassnamn attribut med ev värden Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 5
Vad är objekt? Data Metoder (algoritmer) class Bil { string regnr; float liter; float km; } static float förbrukning (Bil b 2) { return b 2. liter/b 2. km*10; } Bil regnr liter km förbrukning() Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 6
Objektorientering class Bil { string regnr; float liter; float km; float förbrukning () { return liter/km*10; } }. . . Bil b 2 = new Bil(); . . . klass En är en “ritning” eller en “mall” som beskriver objekten. Klassen reserverar inget minnesutrymme för data utan varje objekt har sitt eget datautrymme. Ett objekt innehåller variabler och metoder. Värdet av variablerna definierar objektets tillstånd och metoderna definierar objektets beteende. En klass beskrivs i programkoden medan objekten skapas och existerar under exekveringen av programmet. Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 7
Objektet Bil regnr: string liter: float km: float forbrukning(): float min. Bil: Bil regnr = ”NHG 084” liter = 2977 km = 61267 float forbrukning () { return liter/km*10); } Privat minne (för att lagra data) Instruktioner (för att bearbeta data) class Bil. Test { public static void Main (string[] args) { Bil min. Bil = new Bil(); min. Bil. regnr = ”NHG 084”; min. Bil. liter = 2977; min. Bil. km = 61267; System. Console. Write. Line(min. Bil. forbrukning()); } } Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 8
Operationer och metoder Klassnamn operation (argumentlista): returtyp • operation – ”deklarationen” • metod - operationens kropp (koden, ”definitionen”) • en operation kan motsvaras av flera metoder (polymorfism) Metoderna beskrivs med algoritmer på ”vanligt” sätt: • pseudokod/strukturerad svenska • flödesdiagram eller JSP Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 9
new, konstruktor Deklaration och initiering av en värdevariabel tal av datatypen int tal = 4; Deklaration och initiering av en referensvariabel ruta av klassen Rektangel ruta = new Rektangel(5, 6); Initieringen sker genom operatorn new och en konstruktor i klassen Rektangel Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 10
konstruktor En konstruktor är en speciell metod, som endast används för att initiera objekt. Den har samma namn som klassen. Att skapa ett objekt är samma sak som att skapa en ny instans av klassen. Själva objektet saknar namn. Det är referensen som heter ruta. Man når objektet via referensen. Om man deklarerar en egen konstruktor och dessutom vill ha tillgång till ”den tomma konstruktorn” (utan argument, vilken man annars ärver från Object) så måste man deklarera även denna. Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 11
Interaktionsdiagram Algoritmer • En interaktion är en beskrivning av en följd av åtgärder som vidtas på grund av en händelse • Realisera händelsernas respons med operationer och meddelanden mellan objekten (klasserna) • Interaktionen beskriver ett dynamiskt förlopp • Använd flera diagram för att visa olika utfall vid komplexa scenarion Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 12
Sekvensdiagram a: Class. A message 1() b: Class. B message 2() message 3() Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 13
Interaktionsdiagram class Class. A { Class. B b = new Class. B(); void message 1() { b. message 2(); b. message 3(); } class Class. B { void message 2() {} void message 3() {} } } Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 14
this vid åtkomst av attribut Närhelst du vill vara säker på att du använder objektets instansattribut, kan du ange this som prefix till attributet. class A { int a; void function(int a) { this. a = a; } } Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 15
- Slides: 15