Upgrade to Pro — share decks privately, control downloads, hide ads and more …

HT20 - DA354A - OOP

HT20 - DA354A - OOP

HT20 - DA354A - OOP

1e708b2afb8622d5c5f070a94a3425a9?s=128

Anton Tibblin

January 12, 2021
Tweet

Transcript

  1. Python Objektorienterad programmering (och modellering)

  2. Några frågor innan vi kör igång dagens tillfälle?

  3. Dagensagenda • Vad är objektorienterad programmering? • Hur skiljer sig

    OOP från funktionsdriven programmering? • Hur ser detta ut i Python? • Lite snabba exempel!
  4. OOP

  5. None
  6. None
  7. None
  8. None
  9. None
  10. Hur går ni till vägaidag? När ni jobbar med era

    projekt?
  11. None
  12. None
  13. None
  14. None
  15. I Python-kod, beskriv enfilm?

  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?

  18. None
  19. Datatyper?

  20. Vi vill modelleravärlden! Objektorienterad programmering och modellering

  21. 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.
  22. Att designa ettprogram Varför inte en filmsamling?

  23. Vad är en film?

  24. Vad är en skådespelare?

  25. Hur relaterar en skådespelare till en film?

  26. Vad är en filmsamling?

  27. Demo!

  28. None
  29. 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.
  30. None
  31. 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.
  32. Ex. Funktioner arbetar med data som är fristående frånfunktionen.

  33. Ex. Data skickas mellanfunktioner.

  34. Objektorienterad programmering fokuserarpå objekt. Objekt skapas från abstraktadatatyper och inkapslar

    data och funktioner tillsammans.
  35. 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.
  36. None
  37. En klass är kod som specificerar en datatyp med attribut

    ochmetoder.
  38. None
  39. None
  40. None
  41. Att modellera en stad Tänk er typ ”sim city”

  42. None
  43. Vad hittar vi försaker? 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
  44. None
  45. 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
  46. Vi har skapatdatatypen: Taxi

  47. Vad är då enklass? • 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
  48. 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 iprogrammet • 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.
  49. Vi kollar hur detta serut!

  50. None
  51. Mendettahadevi kunnagörainnanju!

  52. None
  53. Vill vi bygga fler klasser?

  54. Vad är en film?

  55. Vad är en skådespelare?

  56. Hur relaterar en skådespelare till en film?

  57. Vad är en filmsamling?

  58. None