Dagensagenda
• Vad ärobjektorienterad programmering?
• Hur skiljer sig OOP från funktionsdriven programmering?
• Hur ser detta ut i Python?
• Lite snabba exempel!
Vadär objektorienteradprogrammering
• Enprogrammeringsparadigm, 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.
Funkionsdriven programmeringbestår
av eneller 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.
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 ärkod som
specificerar en datatyp
med attribut ochmetoder.
Övning i grupp!
Iklassrummet:
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?
■ Vibeskriver 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 medOOP
1. Identifiera en sak
2. Beskriv saken
3. Skapa instanser (objekt) av saken
51.
Blueprint that describesa house
Class _J
lnstances of the house described by the blueprint
3 objects I
instances I
individuals
Konstruktor
- Körs nären 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.