SlideShare a Scribd company logo
Python
Objektorienterad programmering (och modellering)
Några frågor innan vi kör igång dagens tillfälle?
Dagensagenda
• Vad är objektorienterad programmering?
• Hur skiljer sig OOP från funktionsdriven programmering?
• Hur ser detta ut i Python?
• Lite snabba exempel!
OOP
HT24 - DA354B - Introduktion till programmering - OOP
HT24 - DA354B - Introduktion till programmering - OOP
HT24 - DA354B - Introduktion till programmering - OOP
Hur går ni till vägaidag?
När ni jobbar med era projekt?
HT24 - DA354B - Introduktion till programmering - OOP
HT24 - DA354B - Introduktion till programmering - OOP
HT24 - DA354B - Introduktion till programmering - OOP
HT24 - DA354B - Introduktion till programmering - OOP
Hur går ni till vägaidag?
När ni jobbar med era projekt?
I Python-kod, beskriv enfilm?
I Python-kod,
beskriv en film med skådespelare?
I Python-kod,
beskriv en film med skådespelare,
regissör, speltid,betyg, språk?
HT24 - DA354B - Introduktion till programmering - OOP
Datatyper?
Vi vill modelleravärlden!
Objektorienterad programmering och modellering
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.
Att designa ettprogram
Varför inte en filmsamling?
Vad är en film?
Vad är en
skådespelare?
Hur relaterar en
skådespelare till en film?
Vad är en
filmsamling?
HT24 - DA354B - Introduktion till programmering - OOP
Funktionsdrivenprogrammeringär en
metod att skriva mjukvara.Den fokuserar
på en mjukvarudesign som är centrerad på
funktioner och händelser som sker i ett
program.
HT24 - DA354B - Introduktion till programmering - OOP
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.
Ex. Funktioner arbetar med data som är fristående frånfunktionen.
Ex. Data skickas mellanfunktioner.
Objektorienterad programmering
fokuserarpå objekt. Objekt skapas från
abstraktadatatyper och inkapslar data
och funktioner tillsammans.
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.
HT24 - DA354B - Introduktion till programmering - OOP
En klass är kod som
specificerar en datatyp
med attribut ochmetoder.
HT24 - DA354B - Introduktion till programmering - OOP
HT24 - DA354B - Introduktion till programmering - OOP
VAD ÄR ETT OBJEKT?
Objekt = Individ = Instans
KLASS?
Anton är en människa
Johan är en människa
Objekt/instans Klass
Människa
Människa (klass) – Egenskaper?
Vad har vi gemensamt? > Attribut
- Namn
- Ålder
- Telefonnummer
- Epostadress
- Adress
- Etc.
Människa
Klass
Datatyp
Datatyper
■ Nummer
■ Strängar
■ Boolska värden
■ Listor
■ Lexikon
■ Egna datatyper
1, 5, 7, 234
”Hej”, ”Anton”, ”Pyhton”, ”Glass är gott”
True, False
[1, 2, 3, 4, 5, ”hej”, ”på”, ”dig]
{”namn”: ”Anton”, ”ålder”: 29}
EN KLASS SPECIFICERAR EN
DATATYP MED
ATTRIBUT (egenskaper)
OCH METODER (funktioner).
Ö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
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
Att jobba med OOP
1. Identifiera en sak
2. Beskriv saken
3. Skapa instanser (objekt) av saken
Blueprint that describes a house
Class _J
lnstances of the house described by the blueprint
3 objects I
instances I
individuals
Att bygga objektorienterade
program
Tillvägagångssätt
1. Identifiera en klass (substantiv), med:
• Attribut
• Metoder
2. Skapa ett klassdiagram
3. Översätt klassdiagram till Python-kod
1. Identifiera en klass, med:
• Attribut
• Metoder
1. Identifiera en klass, med:
• Attribut
• Metoder
2. Skapa ett klassdiagram
Namn på klassen
Klassens attribut
Klassens metoder
+ Publika attribut/metoder
- Privata attribut/metoder
Datatyp för attribut
Parametrar för metoder
Datatyp för returvärde
Konstruktor
Utskriftsversion av instans (Python)
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.
2. Skapa ett klassdiagram
3. Översätt klassdiagram till
Python-kod
Klassdiagram Python-kod
3. Översätt klassdiagram till
Python-kod
Demo!
Vad är en film?
Vad är en
skådespelare?
Hur relaterar en
skådespelare till en film?
Vad är en
filmsamling?
Demo!
HT24 - DA354B - Introduktion till programmering - OOP
HT24 - DA354B - Introduktion till programmering - OOP

More Related Content

PDF
Introduktionsföreläsning i kursen Objektorienterad programmering och modeller...
PDF
HT24 - DA354B - Introduktion till Python
PPTX
HT15, DA354A - Introduktion till Python
PDF
HT22 - DA354A - Introduktion till Programmering
PDF
HT19 - DA354A - Introduktion till Python
PDF
HT18 - DA354A - Introduction to programming
PDF
HT16 - DA354A - Introduktion till programmering (Python)
PDF
HT18 - DA354A - OOP, en översikt
Introduktionsföreläsning i kursen Objektorienterad programmering och modeller...
HT24 - DA354B - Introduktion till Python
HT15, DA354A - Introduktion till Python
HT22 - DA354A - Introduktion till Programmering
HT19 - DA354A - Introduktion till Python
HT18 - DA354A - Introduction to programming
HT16 - DA354A - Introduktion till programmering (Python)
HT18 - DA354A - OOP, en översikt

Similar to HT24 - DA354B - Introduktion till programmering - OOP (16)

PDF
HT19 - DA354A - OOP Intro
PDF
Introduktion till UML, OOAD & OOP, del 1
PDF
HT18 - DA361A - Introduktion till UML
PDF
VT24 - Responsiv design & Ramverk inom webbutveckling
PDF
HT16 - DA354A - OOP
PDF
HT16 - DA354A - Funktioner
PPTX
Planering fll till school4you
PDF
HT24 - DA354B -Intro:Funktioner i Python
PDF
HT18 - DA354A - Functions
PPTX
JavaScript - Intro
PDF
HT19 - DA354A - Funktioner
PDF
HT19 - DA361A - OOP med Python (1)
PDF
HT22 - DA354A - Funktioner
PDF
HT16 - DA361A - OOP med Python
PPTX
HT15, DA354A - Funkioner
PDF
Powerpointretorik Kino Lund 2011-04-01
HT19 - DA354A - OOP Intro
Introduktion till UML, OOAD & OOP, del 1
HT18 - DA361A - Introduktion till UML
VT24 - Responsiv design & Ramverk inom webbutveckling
HT16 - DA354A - OOP
HT16 - DA354A - Funktioner
Planering fll till school4you
HT24 - DA354B -Intro:Funktioner i Python
HT18 - DA354A - Functions
JavaScript - Intro
HT19 - DA354A - Funktioner
HT19 - DA361A - OOP med Python (1)
HT22 - DA354A - Funktioner
HT16 - DA361A - OOP med Python
HT15, DA354A - Funkioner
Powerpointretorik Kino Lund 2011-04-01
Ad

More from Anton Tibblin (20)

PPTX
React - Gästföreläsning - Flerplattformsapplikationer
PDF
2025 - DA395A - Localstorage & cookies Geolocation Mediahantering.pdf
PDF
DA395A -jQuery och Ajax - Flerplattformsapplikationer med webbtekniker
PDF
VT25 - JavaScript och DOM - Flerplattformsapplikationer med webbtekniker
PDF
VT25 - DA395A - Kursintroduktion i Flerplattformsapplikationerm med webbtekniker
PDF
DA354B - Introduktion till programmering - Webbprogrammering
PDF
DA354B - Introduktion till programmering: Fil- och felhantering
PDF
HT24 - DA354B - Mer om funktioner i Python
PDF
HT24 - DA354B - Kursintroduktion till programmering
PDF
DA106A - Introduktion till webbutveckling - Responsiv design
PDF
HT24 - Introduktion till webbutveckling - Introduktion till CSS
PDF
HT24 - Introduktion till webbutveckling - Tabeller och formulär
PDF
HT24 - Introduktion till webbutveckling - Introduktion till HTML
PDF
HT24 - Introduktion till webbutveckling - Kursintroduktion
PDF
2024 - Localstorage & cookies Geolocation Mediahantering.pdf
PDF
VT24 - jQuery & Ajax - Flerplattformsapplikationer med webbtekniker
PDF
DA395A - VT24 - JavaScript & Document object model
PDF
VT24 - DA395A - Kursintroduktion: Flerplattformsapplikationer med webbtekniker
PDF
HT23 - DA354A - Webbprogrammering med Python
PDF
HT23 - DA354A - Fil- och felhantering
React - Gästföreläsning - Flerplattformsapplikationer
2025 - DA395A - Localstorage & cookies Geolocation Mediahantering.pdf
DA395A -jQuery och Ajax - Flerplattformsapplikationer med webbtekniker
VT25 - JavaScript och DOM - Flerplattformsapplikationer med webbtekniker
VT25 - DA395A - Kursintroduktion i Flerplattformsapplikationerm med webbtekniker
DA354B - Introduktion till programmering - Webbprogrammering
DA354B - Introduktion till programmering: Fil- och felhantering
HT24 - DA354B - Mer om funktioner i Python
HT24 - DA354B - Kursintroduktion till programmering
DA106A - Introduktion till webbutveckling - Responsiv design
HT24 - Introduktion till webbutveckling - Introduktion till CSS
HT24 - Introduktion till webbutveckling - Tabeller och formulär
HT24 - Introduktion till webbutveckling - Introduktion till HTML
HT24 - Introduktion till webbutveckling - Kursintroduktion
2024 - Localstorage & cookies Geolocation Mediahantering.pdf
VT24 - jQuery & Ajax - Flerplattformsapplikationer med webbtekniker
DA395A - VT24 - JavaScript & Document object model
VT24 - DA395A - Kursintroduktion: Flerplattformsapplikationer med webbtekniker
HT23 - DA354A - Webbprogrammering med Python
HT23 - DA354A - Fil- och felhantering
Ad

HT24 - DA354B - Introduktion till programmering - OOP