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

HT21 - DA354A - OOP

HT21 - DA354A - OOP

1e708b2afb8622d5c5f070a94a3425a9?s=128

Anton Tibblin

January 11, 2022
Tweet

More Decks by Anton Tibblin

Other Decks in Education

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. Hur går ni till vägaidag? När ni jobbar med era

    projekt?
  16. I Python-kod, beskriv enfilm?

  17. I Python-kod, beskriven film med skådespelare?

  18. I Python-kod, beskriv en film med skådespelare, regissör, speltid,betyg, språk?

  19. None
  20. Datatyper?

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

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

  24. Vad är en film?

  25. Vad är en skådespelare?

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

  27. Vad är en filmsamling?

  28. Demo!

  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ån funktionen.

  33. Ex. Data skickas mellan funktioner.

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

    data och funktionertillsammans.
  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. VAD ÄR ETT OBJEKT? Objekt = Individ = Instans

  41. KLASS?

  42. Anton är en människa

  43. Johan är en människa

  44. Objekt/instans Klass Människa

  45. Människa (klass) – Egenskaper?

  46. Vad har vi gemensamt? > Attribut - Namn - Ålder

    - Telefonnummer - Epostadress - Adress - Etc.
  47. Människa Klass Datatyp

  48. 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}
  49. EN KLASS SPECIFICERAR EN DATATYP MED ATTRIBUT (egenskaper) OCH METODER

    (funktioner).
  50. Ö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
  51. 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
  52. Att jobba med OOP 1. Identifiera en sak 2. Beskriv

    saken 3. Skapa instanser (objekt) av saken
  53. Blueprint that describes a house Class _J lnstances of the

    house described by the blueprint 3 objects I instances I individuals
  54. Att bygga objektorienterade program

  55. Tillvägagångssätt 1. Identifiera en klass (substantiv), med: • Attribut •

    Metoder 2. Skapa ett klassdiagram 3. Översätt klassdiagram till Python-kod
  56. 1. Identifiera en klass, med: • Attribut • Metoder

  57. 1. Identifiera en klass, med: • Attribut • Metoder

  58. 2. Skapa ett klassdiagram

  59. Namn på klassen Klassens attribut Klassens metoder

  60. + Publika attribut/metoder - Privata attribut/metoder Datatyp för attribut Parametrar

    för metoder Datatyp för returvärde
  61. Konstruktor Utskriftsversion av instans (Python)

  62. 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.
  63. 2. Skapa ett klassdiagram

  64. 3. Översätt klassdiagram till Python-kod

  65. Klassdiagram Python-kod

  66. 3. Översätt klassdiagram till Python-kod

  67. Demo!

  68. Vad är en film?

  69. Vad är en skådespelare?

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

  71. Vad är en filmsamling?

  72. Demo!

  73. None
  74. None