Programmering 1

KLASSER OCH OBJEKT
MÅL
- Orientering om Objektorienterad programmering (OOP)
- Deklarera klasser med tillhörande attribut och metoder. Skapa instanser, d.v.s objekt av klassen
- Hur man gör i Python samt förstå begreppen!
Programmeringsparadigm
- Ju större program blir, desto mer komplexa blir de. Ett programmeringsparadigm handlar om på vilket sätt man programmerar, d.v.s hur man strukturerar och organiserar kod (design). På så sätt handlar det också om hur man beskriver ett program
- OOP är ett programmeringsparadigm bland många andra
- Andra programmeringsparadigm: Procedurell programmering, Logikprogrammering, Funktionell programmering, etc
- Ett programmeringsspråk kan erbjuda flera programmeringsparadigm, så väl som ett program kan innehålla flera programmeringsparadigm.
Objektorienterad programmering
- OOP är ett programmeringsparadigm som syftar till att efterlikna "verkligheten"
- Återspeglar OOP-syn: Program = Modell av verkligheten
- Precis som den reella världen består av objekt, såsom en bil, böcker, en butik, kan man i ett program beskriva dessa objekt.
- Ett objekt har vissa egenskaper. Exempelvis objektet BIL - fyra hjul, färg, nummerplåt, kan köra framåt, kan accelerera, kan bromsa
- I OOP kallas egenskaperna för ett objekt för attribut
- Ett objekt kan utföra aktioner eller operationer, dessa kallas inom OOP för metoder
- En beskrivning, en mall som innehåller både objektets attribut och metoder kallas för klass
Klasser och objekt
-
Ett objekt skapas utifrån en klass. En klass är en mall utifrån vilken man kan skapa nya objekt.
-
När man har skapat ett objekt kallas det en instans av klassen.
- Klassen skrivs i kod och definierar vilka attribut (variabler) och metoder (funktioner) som finns i ett objekt av den klassen.
- Exempel: Om pepparkaksformen är klassen är själva pepparkakorna objekten (eller instans av klassen). En pepparkaksform kan producera tusentals pepparkaksgubbar med olikheter i detaljer såsom materialet, smaken etc. Den ursprungliga formen är att de är pepparkaksgubbar.
Vad är skillnaden?
Har vi använt oss av klasser förut?
Låt oss kika..

Skapa en klass
Enklast möjliga...
class Vehicle:
def __init__(self, make, model, year):
self.make = make
self.model = model
self.year = year
- Initieringsmetoden __init__ anropas automatiskt när man skapar ett nytt objekt av klassen.
- “self” används för att referera till objektet som initieringsmetoden (konstruktorn) skapar
Instantiera en klass
v = Vehicle("Nissan", "Datsun", 1997)
I det här fallet blir v en Nissan Datsun med årsmodell 1997
Att skapa ett objekt som är en instans av klassen kallas att instantiera en klass
v.make
'Nissan'
v.model
'Datsun'
v.year
1997
self
Det reserverade ordet self används för att referera nuvarande instans av klassen.
class Vehicle:
def __init__(self, make, model, year):
self.make = make
self.model = model
self.year = year
self måste alltid användas som första parameter i __init__ samt till klassens andra attribut och metoder
Instansattribut och instansmetoder
class Person():
def __init__(self, first_name, last_name):
self.first_name = first_name
self.last_name = last_name
def full_name(self):
return f"My name is {self.first_name} {self.last_name}"
def likes(self, thing):
return f"{self.first_name} likes {thing}!"
p = Person("Sandra", "Larsson")
p.full_name()
Sandra Larsson
p.likes("Icecream")
Sandra likes Icecream!
Self skickas med som parameter till instansmetoderna - representerar nuvarande instans av klassen. Används för få access till attributen och metoderna till klassen!
Exempel
Vi vill göra en modell av spelet poker
- Game
- Player
- Card
- Deck
- Hand
Programmering 1 - Klasser och objekt
By Sandra Larsson
Programmering 1 - Klasser och objekt
- 222