3. Dagensagenda
• Vad är objektorienterad programmering?
• Hur skiljer sig OOP från funktionsdriven programmering?
• Hur ser detta ut i Python?
• Lite snabba exempel!
20. Vadär objektorienteradprogrammering
• En programmeringsparadigm, ett sätt hur man skriver &
strukturerar kod.
• Vi vill kunna efterlikna den ”verkliga världen” så mycket
som möjligt, genom att göra allt till objekt.
• Därför brukar man modellera sitt program innan man
programmerar det.
29. Funkionsdriven programmeringbestår
av en eller flerafunktioner
• Funktioner arbetar med data som är fristående från
funktionen.
• Data skickas mellan funktioner.
• Fokus är på att bygga funktioner som hanterar en
mjukvaras data.
33. Objektorienteradprogrammering
• Ett objekt är en datatyp som innehåller både
data och funktioner.
• Data som finns i ett objekt kallas för attribut (eller
egenskaper). Funktioner som finns i ett objekt kallas för
metoder.
35. En klass är kod som
specificerar en datatyp
med attribut ochmetoder.
47. EN KLASS SPECIFICERAR EN
DATATYP MED
ATTRIBUT (egenskaper)
OCH METODER (funktioner).
48. Övning i grupp!
I klassrummet:
1. Hitta tre klasser, med individer
2. Beskriv klassens egenskaper, och
individernas värde för egenskaperna.
3. Beskriv klassens metoder
49. Varför OOP?
■ Vi beskriver väldigt ofta ”verkliga” objekt i kod
– Lättare att göra i OOP
– Kan beskriva inte bara hur objekten ser ut, utan även hur de får
agera
■ Källkoden blir ofta enklare att hantera
– All relevant kod på samma ställe
■ Med OOP är det enkelt att återanvända kod
– Vi vill ju inte uppfinna hjulet eller skriva om kod igen…
■ Väldigt många större projekt, byggs enligt OOP
50. Att jobba med OOP
1. Identifiera en sak
2. Beskriv saken
3. Skapa instanser (objekt) av saken
51. Blueprint that describes a house
Class _J
lnstances of the house described by the blueprint
3 objects I
instances I
individuals
53. Tillvägagångssätt
1. Identifiera en klass (substantiv), med:
• Attribut
• Metoder
2. Skapa ett klassdiagram
3. Översätt klassdiagram till Python-kod
60. Konstruktor
- Körs när en instans av klassen skapas. Kan t.ex.
bestämma vilka attribut som är obligatoriska för att
skapa en instans av klassen, m.m.
Sträng-funktion
- I Python finns funktionen _ _str_ _ vars uppgift är att
skriva ut en textbaserad beskrivning av instansen.