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

HT21 - DA361A - Klasser i samverkan

1e708b2afb8622d5c5f070a94a3425a9?s=47 Anton Tibblin
September 13, 2021

HT21 - DA361A - Klasser i samverkan

1e708b2afb8622d5c5f070a94a3425a9?s=128

Anton Tibblin

September 13, 2021
Tweet

Transcript

  1. OOP MED

  2. None
  3. Dagens Agenda • Repetition • Klasser & Objekt • Förra

    veckans labb • Inkapsling • Hur, var, när, varför? • Exempel på inkapsling • Mer om klasser • Funktioner för klasser • Klassvariabler • Relationer mellan klasser • Att bygga större system • Olika relationer • Att bygga ett mindre program
  4. None
  5. VAD ÄR ETT OBJEKT? Objekt = Individ = Instans

  6. VAD ÄR ETT EN KLASS? En mall/ritning över hur instanser

    ser ut och fungerar
  7. Klass Människa Instans

  8. Att arbeta med en klass Hur gjorde man nu det?

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

    Metoder 2. Skapa ett klassdiagram 3. Översätt klassdiagram till Python-kod
  10. Namn på klassen Klassens attribut Klassens metoder

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

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

  13. Klassdiagram Python-kod

  14. Type Hinting Berätta vad för data som vi förväntar oss!

  15. ”Vanlig” Python-kod Type hinting

  16. Inkapsling Vem har tillgång till en klass attribut och metoder?

  17. None
  18. Varför inkapsling? • Vi vill ha kontroll på vem som

    får använda våra metoder / attribut • Vi vill kontrollera hur våra attribut modifieras, t.ex. • Validera ett värde • Välja hur våra attribut får användas • Läs / skrivbara attribut • Välja hur attribut ska returneras • Objektet har ett gränssnitt — en tydlig definition över vad som kan göras. • Exakt hur saker och ting utförs spelar ingen roll utifrån. • Men objektet måste ha kontroll över sitt tillstånd.
  19. EXEMPEL När kan detta vara vettigt att använda?

  20. 1. För att skydda data

  21. None
  22. None
  23. Hur skyddar vi attribut & metoder?

  24. None
  25. None
  26. None
  27. None
  28. None
  29. 2. För att kontrollera data

  30. None
  31. None
  32. None
  33. Allt är supersäkert nu då?

  34. None
  35. None
  36. Gränssnitt

  37. None
  38. Demo: Användare

  39. SPECIALMETODER I KLASSER

  40. None
  41. None
  42. None
  43. ATTRIBUT I KLASSER Alla attribut måste inte anges i konstruktor

  44. None
  45. None
  46. None
  47. None
  48. HÄMTA FLERA ATTRIBUT

  49. None
  50. KLASSATTRIBUT

  51. None
  52. None
  53. Skillnad mellan attribut (instans) och klassattribut

  54. KLASSMETODER

  55. None
  56. STATISKA METODER

  57. None
  58. LÄGGA TILL FUNKTIONER SOM ”EXTRA” ATTRIBUT

  59. None
  60. None
  61. Demo: Användare

  62. RELATION MELLAN OBJEKT

  63. None
  64. None
  65. None
  66. None
  67. Filmsamling