SlideShare uma empresa Scribd logo
1 de 66
Baixar para ler offline
OOP MED
Del 2
Dagens föreläsning
Dagens agenda
• Repetition: Klasser och objekt
• Inkapsling
• Arv
• Relationer mellan klasser i OOP
• Exempel på koncepten
REPETITION - OOP
Vad vi gjorde senast
EXEMPEL
En taxibil
Att beskriva en taxibil
Attribut
■ Namn på chaufför Sträng
■ I tjänst Bool
■ Antal passagerare Nummer
■ Städer Lista
Metoder
■ Plocka upp passagerare
■ Släppa av passagerare
■ Aktivera taxibilen för körningar
■ Avaktivera taxibilen för körningar
■ Ange namn på taxichaufför
■ Hämta namn på taxichaufför
■ …
Skapa ett objekt av klassen
KLASSATTRIBUT &
KLASSVARIABLER
FRÅN LABORATIONEN
INKAPSLING
Vem har tillgång till en klass attribut och metoder?
Varför inkapsling?
1. Vi vill ha kontroll på vem som får använda våra funktioner / attribut
2. Vi vill kontrollera hur våra attribut modifieras, t.ex.
1. Validera ett värde
2. Välja hur våra attribut får användas
1. Läs / skrivbara attribut
2. 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.
EXEMPEL
När kan detta vara vettigt att använda?
EXEMPEL - BANKKONTO
SPECIALMETODER I
KLASSER
ATTRIBUT I KLASSER
Alla attribut måste inte anges i konstruktor
HÄMTA FLERA ATTRIBUT
KLASSATTRIBUT
Skillnad mellan attribut (instans) och
klassattribut
KLASSMETODER
STATISKA METODER
LÄGGA TILL FUNKTIONER
SOM ”EXTRA” ATTRIBUT
ARV
Arv
En klass ärver attribut/metoder från
en annan klass
Vi kan på så sätt återanvända kod
”is a”-relation
RELATION MELLAN
OBJEKT
MER OM *ARGS,
**KWARGS
http://stackoverflow.com/questions/3394835/args-and-
kwargs
FRÅGOR?
HT19 - DA361A - OOP med Python (2)
HT19 - DA361A - OOP med Python (2)
HT19 - DA361A - OOP med Python (2)
HT19 - DA361A - OOP med Python (2)
HT19 - DA361A - OOP med Python (2)

Mais conteúdo relacionado

Mais de Anton Tibblin

HT23 - DA354A - Listor och lexikon
HT23 - DA354A - Listor och lexikonHT23 - DA354A - Listor och lexikon
HT23 - DA354A - Listor och lexikonAnton Tibblin
 
HT23 - DA354A - Kursintroduktion
HT23 - DA354A - KursintroduktionHT23 - DA354A - Kursintroduktion
HT23 - DA354A - KursintroduktionAnton Tibblin
 
HT23 - DA106A - Användbarhet (2)
HT23 - DA106A - Användbarhet (2)HT23 - DA106A - Användbarhet (2)
HT23 - DA106A - Användbarhet (2)Anton Tibblin
 
HT23 - DA106A - Användbarhet 1
HT23 - DA106A - Användbarhet 1HT23 - DA106A - Användbarhet 1
HT23 - DA106A - Användbarhet 1Anton Tibblin
 
HT23 - DA106A - Ramverk & Bibliotek
HT23 - DA106A - Ramverk & BibliotekHT23 - DA106A - Ramverk & Bibliotek
HT23 - DA106A - Ramverk & BibliotekAnton Tibblin
 
HT23 - DA106A - Introduktion till JavaScript
HT23 - DA106A - Introduktion till JavaScriptHT23 - DA106A - Introduktion till JavaScript
HT23 - DA106A - Introduktion till JavaScriptAnton Tibblin
 
HT23 - DA106A - Responsiv webbutveckling
HT23 - DA106A - Responsiv webbutvecklingHT23 - DA106A - Responsiv webbutveckling
HT23 - DA106A - Responsiv webbutvecklingAnton Tibblin
 
HT23 - DA106A - Layout (2)
HT23 - DA106A - Layout (2)HT23 - DA106A - Layout (2)
HT23 - DA106A - Layout (2)Anton Tibblin
 
HT23 - DA106A - Layout med CSS (1)
HT23 - DA106A - Layout med CSS (1)HT23 - DA106A - Layout med CSS (1)
HT23 - DA106A - Layout med CSS (1)Anton Tibblin
 
Introduktion till CSS
Introduktion till CSSIntroduktion till CSS
Introduktion till CSSAnton Tibblin
 
HTML - Tabeller och formulär
HTML - Tabeller och formulärHTML - Tabeller och formulär
HTML - Tabeller och formulärAnton Tibblin
 
Introduktion till HTML
Introduktion till HTMLIntroduktion till HTML
Introduktion till HTMLAnton Tibblin
 
LocalStorage - GeoLocation - Media
LocalStorage - GeoLocation - MediaLocalStorage - GeoLocation - Media
LocalStorage - GeoLocation - MediaAnton Tibblin
 
VT23 - RWD & Ramverk
VT23 - RWD & RamverkVT23 - RWD & Ramverk
VT23 - RWD & RamverkAnton Tibblin
 
VT23 - DA395A - Kursintroduktion
VT23 - DA395A - KursintroduktionVT23 - DA395A - Kursintroduktion
VT23 - DA395A - KursintroduktionAnton Tibblin
 
HT22 - DA354A - Files
HT22 - DA354A - FilesHT22 - DA354A - Files
HT22 - DA354A - FilesAnton Tibblin
 
HT22 - DA354A - Listor & lexikon
HT22 - DA354A - Listor & lexikonHT22 - DA354A - Listor & lexikon
HT22 - DA354A - Listor & lexikonAnton Tibblin
 

Mais de Anton Tibblin (20)

HT23 - DA354A - Listor och lexikon
HT23 - DA354A - Listor och lexikonHT23 - DA354A - Listor och lexikon
HT23 - DA354A - Listor och lexikon
 
HT23 - DA354A - Kursintroduktion
HT23 - DA354A - KursintroduktionHT23 - DA354A - Kursintroduktion
HT23 - DA354A - Kursintroduktion
 
HT23 - DA106A - Användbarhet (2)
HT23 - DA106A - Användbarhet (2)HT23 - DA106A - Användbarhet (2)
HT23 - DA106A - Användbarhet (2)
 
HT23 - DA106A - Användbarhet 1
HT23 - DA106A - Användbarhet 1HT23 - DA106A - Användbarhet 1
HT23 - DA106A - Användbarhet 1
 
HT23 - DA106A - Ramverk & Bibliotek
HT23 - DA106A - Ramverk & BibliotekHT23 - DA106A - Ramverk & Bibliotek
HT23 - DA106A - Ramverk & Bibliotek
 
HT23 - DA106A - Introduktion till JavaScript
HT23 - DA106A - Introduktion till JavaScriptHT23 - DA106A - Introduktion till JavaScript
HT23 - DA106A - Introduktion till JavaScript
 
HT23 - DA106A - Responsiv webbutveckling
HT23 - DA106A - Responsiv webbutvecklingHT23 - DA106A - Responsiv webbutveckling
HT23 - DA106A - Responsiv webbutveckling
 
HT23 - DA106A - Layout (2)
HT23 - DA106A - Layout (2)HT23 - DA106A - Layout (2)
HT23 - DA106A - Layout (2)
 
HT23 - DA106A - Layout med CSS (1)
HT23 - DA106A - Layout med CSS (1)HT23 - DA106A - Layout med CSS (1)
HT23 - DA106A - Layout med CSS (1)
 
Introduktion till CSS
Introduktion till CSSIntroduktion till CSS
Introduktion till CSS
 
HTML - Tabeller och formulär
HTML - Tabeller och formulärHTML - Tabeller och formulär
HTML - Tabeller och formulär
 
Introduktion till HTML
Introduktion till HTMLIntroduktion till HTML
Introduktion till HTML
 
Kursintroduktion
KursintroduktionKursintroduktion
Kursintroduktion
 
LocalStorage - GeoLocation - Media
LocalStorage - GeoLocation - MediaLocalStorage - GeoLocation - Media
LocalStorage - GeoLocation - Media
 
jQuery & Ajax
jQuery & AjaxjQuery & Ajax
jQuery & Ajax
 
VT23 - RWD & Ramverk
VT23 - RWD & RamverkVT23 - RWD & Ramverk
VT23 - RWD & Ramverk
 
JavaScript & DOM
JavaScript & DOMJavaScript & DOM
JavaScript & DOM
 
VT23 - DA395A - Kursintroduktion
VT23 - DA395A - KursintroduktionVT23 - DA395A - Kursintroduktion
VT23 - DA395A - Kursintroduktion
 
HT22 - DA354A - Files
HT22 - DA354A - FilesHT22 - DA354A - Files
HT22 - DA354A - Files
 
HT22 - DA354A - Listor & lexikon
HT22 - DA354A - Listor & lexikonHT22 - DA354A - Listor & lexikon
HT22 - DA354A - Listor & lexikon
 

HT19 - DA361A - OOP med Python (2)