SlideShare a Scribd company logo
Python
Objektorienterad programmering (och modellering)
Alumn – och
examensmiddag VT20
Dagens agenda
• Vad är objektorienterad programmering?
• Hur skiljer sig detta från funktionsdriven programmering? (det vi gjort hittills)
• Hur ser detta ut i Python?
• Lite snabba exempel!
HT19 - DA354A - OOP Intro
HT19 - DA354A - OOP Intro
HT19 - DA354A - OOP Intro
HT19 - DA354A - OOP Intro
HT19 - DA354A - OOP Intro
HT19 - DA354A - OOP Intro
Hur går ni till väga idag?
När ni jobbar med era projekt?
HT19 - DA354A - OOP Intro
HT19 - DA354A - OOP Intro
HT19 - DA354A - OOP Intro
HT19 - DA354A - OOP Intro
I Python-kod, beskriv en film?
I Python-kod, beskriv en film med
skådespelare?
I Python-kod, beskriv en film med
skådespelare, regissör, speltid, betyg,
språk?
HT19 - DA354A - OOP Intro
Datatyper?
Vi vill modellera världen!
Objektorienterad programmering och modellering
Vad är objektorienterad programmering
• 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 ett program
Varför inte en filmsamling?
HT19 - DA354A - OOP Intro
Funktionsdrivenprogrammeringär en metod att skriva
mjukvara. Den fokuserar på en mjukvarudesign som är
centrerad på funktioneroch händelser som sker i ett
program.
HT19 - DA354A - OOP Intro
Funkionsdriven programmering består
av en eller flera funktioner
Funktioner arbetar med data som är fristående från funktionen
Data skickas mellan funktioner
Fokus är på att bygga funktioner som hanterar enmjukvaras data
Objektorienterad programmering fokuserar på
objekt. Objekt skapas från abstrakta datatyper
och inkapslar data och funktioner tillsammans.
Objektorienterad programmering
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
HT19 - DA354A - OOP Intro
En klass är kod som specificerar en
datatyp med attribut och metoder.
HT19 - DA354A - OOP Intro
HT19 - DA354A - OOP Intro
HT19 - DA354A - OOP Intro
Att modellera en stad
Tänk er typ ”sim city”
HT19 - DA354A - OOP Intro
Vad hittar vi för saker?
• Människa
• Attribut:
• Namn
• Ålder
• Kön
• Pengar
• Metoder:
• Gå
• Shoppa
• Prata
• Åka taxi
• Byggnad
• Attribut:
• Gata
• Nummer
• Storlek
• Våningar
• Ålder
• Metoder:
• Bygga ut
• Rasera
• Renovera
• Affär
• Attribut:
• Namn
• Typ av affär
• Adress
• Telefonnummer
• Metoder:
• Öppna
• Stänga
• Sälja
• Inventera
HT19 - DA354A - OOP Intro
Låt oss fokusera på taxibilen…
• Taxibil
• Attribut:
• Förare
• Aktiv
• Passagerare
• Plats
• Metoder:
• Hämta folk
• Lämna folk
• Byt chaufför
• Byt passagerare
Vi har skapat datatypen:
Taxi
Vad är då en klass?
• En klass är en beskrivning av hur ett objekt (t.ex. en taxi-bil, en affär, en människa)
ser ut. Alltså:
• Vilka attribut som finns
• Vilka metoder som finns
• Man brukar rita upp detta i ett så kallat klassdiagram.
• Taxibil
• Attribut:
• Förare
• Aktiv
• Passagerare
• Plats
• Metoder:
• Hämta folk
• Lämna folk
• Byt chaufför
• Byt passagerare
Hur skiljer sig detta från det vi gjort
hittills?
• Funktionsdriven programmering
• Skapar ett steg-för-steg program (funktioner som kallar på varandra i en viss ordning)
• Vi är väldigt öppna med vilken data som finns – och hur denna skickas runt i programmet
• Objektorienterad programmering
• Fokuserar på att modellera världen på ett sätt som är enkelt att förstå för människan
• Istället för att man skickar data mellan olika funktionen har varje objekt sina egna funktioner och
attribut – som ibland är hemliga, och objekten visar bara det som de vill visa.
Vi kollar hur detta ser ut
Men detta hade vi kunna göra innan ju!
HT19 - DA354A - OOP Intro

More Related Content

PDF
HT18 - DA354A - OOP, en översikt
PDF
HT16 - DA354A - OOP
PDF
HT19 - DA361A - OOP med Python (1)
PDF
HT24 - DA354B - Introduktion till programmering - OOP
KEY
Vad är webb
PDF
Seo grunder
KEY
Vad är webb för oss?
PDF
Bättre match mellan jobbsökare och arbetsgivare
HT18 - DA354A - OOP, en översikt
HT16 - DA354A - OOP
HT19 - DA361A - OOP med Python (1)
HT24 - DA354B - Introduktion till programmering - OOP
Vad är webb
Seo grunder
Vad är webb för oss?
Bättre match mellan jobbsökare och arbetsgivare

Similar to HT19 - DA354A - OOP Intro (7)

PPTX
Presentation Sitevisiondagarna 2011
PDF
Kravhantering i praktiken publikt
PDF
Innehåll först med innehållsprototyper
PPTX
JavaScript - Intro
PDF
Ux som strategi_lina_westerling_med_anteckningar_komprimerad
PPTX
Lean UX i Agila Team
PPT
SFIS: Mobila tjänster Stockholms stadsbibliotek
Presentation Sitevisiondagarna 2011
Kravhantering i praktiken publikt
Innehåll först med innehållsprototyper
JavaScript - Intro
Ux som strategi_lina_westerling_med_anteckningar_komprimerad
Lean UX i Agila Team
SFIS: Mobila tjänster Stockholms stadsbibliotek
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 -Intro:Funktioner i Python
PDF
HT24 - DA354B - Introduktion till 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
VT24 - Responsiv design & Ramverk inom webbutveckling
PDF
DA395A - VT24 - JavaScript & Document object model
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 -Intro:Funktioner i Python
HT24 - DA354B - Introduktion till 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
VT24 - Responsiv design & Ramverk inom webbutveckling
DA395A - VT24 - JavaScript & Document object model
Ad

HT19 - DA354A - OOP Intro

  • 3. Dagens agenda • Vad är objektorienterad programmering? • Hur skiljer sig detta från funktionsdriven programmering? (det vi gjort hittills) • Hur ser detta ut i Python? • Lite snabba exempel!
  • 10. Hur går ni till väga idag? När ni jobbar med era projekt?
  • 16. I Python-kod, beskriv en film med skådespelare?
  • 17. I Python-kod, beskriv en film med skådespelare, regissör, speltid, betyg, språk?
  • 20. Vi vill modellera världen! Objektorienterad programmering och modellering
  • 21. Vad är objektorienterad programmering • 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.
  • 22. Att designa ett program Varför inte en filmsamling?
  • 24. Funktionsdrivenprogrammeringär en metod att skriva mjukvara. Den fokuserar på en mjukvarudesign som är centrerad på funktioneroch händelser som sker i ett program.
  • 26. Funkionsdriven programmering består av en eller flera funktioner Funktioner arbetar med data som är fristående från funktionen Data skickas mellan funktioner Fokus är på att bygga funktioner som hanterar enmjukvaras data
  • 27. Objektorienterad programmering fokuserar på objekt. Objekt skapas från abstrakta datatyper och inkapslar data och funktioner tillsammans.
  • 28. Objektorienterad programmering 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
  • 30. En klass är kod som specificerar en datatyp med attribut och metoder.
  • 34. Att modellera en stad Tänk er typ ”sim city”
  • 36. Vad hittar vi för saker? • Människa • Attribut: • Namn • Ålder • Kön • Pengar • Metoder: • Gå • Shoppa • Prata • Åka taxi • Byggnad • Attribut: • Gata • Nummer • Storlek • Våningar • Ålder • Metoder: • Bygga ut • Rasera • Renovera • Affär • Attribut: • Namn • Typ av affär • Adress • Telefonnummer • Metoder: • Öppna • Stänga • Sälja • Inventera
  • 38. Låt oss fokusera på taxibilen… • Taxibil • Attribut: • Förare • Aktiv • Passagerare • Plats • Metoder: • Hämta folk • Lämna folk • Byt chaufför • Byt passagerare
  • 39. Vi har skapat datatypen: Taxi
  • 40. Vad är då en klass? • En klass är en beskrivning av hur ett objekt (t.ex. en taxi-bil, en affär, en människa) ser ut. Alltså: • Vilka attribut som finns • Vilka metoder som finns • Man brukar rita upp detta i ett så kallat klassdiagram. • Taxibil • Attribut: • Förare • Aktiv • Passagerare • Plats • Metoder: • Hämta folk • Lämna folk • Byt chaufför • Byt passagerare
  • 41. Hur skiljer sig detta från det vi gjort hittills? • Funktionsdriven programmering • Skapar ett steg-för-steg program (funktioner som kallar på varandra i en viss ordning) • Vi är väldigt öppna med vilken data som finns – och hur denna skickas runt i programmet • Objektorienterad programmering • Fokuserar på att modellera världen på ett sätt som är enkelt att förstå för människan • Istället för att man skickar data mellan olika funktionen har varje objekt sina egna funktioner och attribut – som ibland är hemliga, och objekten visar bara det som de vill visa.
  • 42. Vi kollar hur detta ser ut
  • 43. Men detta hade vi kunna göra innan ju!