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

HT21 - DA354A - OOP

HT21 - DA354A - OOP

Anton Tibblin

January 11, 2022
Tweet

More Decks by Anton Tibblin

Other Decks in Education

Transcript

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

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

  3. 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.
  4. 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.
  5. 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.
  6. 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.
  7. Vad har vi gemensamt? > Attribut - Namn - Ålder

    - Telefonnummer - Epostadress - Adress - Etc.
  8. 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}
  9. Ö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
  10. 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
  11. Att jobba med OOP 1. Identifiera en sak 2. Beskriv

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

    house described by the blueprint 3 objects I instances I individuals
  13. Tillvägagångssätt 1. Identifiera en klass (substantiv), med: • Attribut •

    Metoder 2. Skapa ett klassdiagram 3. Översätt klassdiagram till Python-kod
  14. 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.