Programmering nivå 2

Kap 3.1 – Vad är OOP?

Förstå hur objekt, klasser, attribut och metoder används för att strukturera program.

Mål med lektionen

När du har arbetat klart med denna lektion ska du:

  • Känna till grunderna i objektorienterad programmering (OOP).
  • Förstå varför OOP används och vad det innebär att tänka i objekt.
  • Kunna skilja mellan begreppen klass, objekt, egenskap och metod.

Så här lär du dig bäst

Börja med att läsa igenom hela lektionen för att få en helhetsbild. Försök tänka på hur du skulle beskriva verkliga företeelser med kod: en bil, en bok eller en elev. Jämför gärna hur samma problem skulle kunna lösas med fristående funktioner respektive med objekt.

Centrala begrepp

  • Objekt: ett självständigt paket av data och funktionalitet, till exempel en specifik bok.
  • Klass: en mall eller ritning för att skapa objekt, till exempel typen Bok.
  • Egenskap eller attribut: data som hör till ett objekt, till exempel en boks titel eller författare.
  • Metod: en funktion som hör till en klass eller ett objekt, till exempel skriv_ut_info().
  • Inkapsling: att dölja interna detaljer i ett objekt och exponera en tydlig yta.
  • Återanvändning: att skapa kod som kan användas flera gånger genom att skapa nya objekt.

Dessa begrepp är viktiga eftersom de bygger upp strukturen i objektorienterad programmering. När du skriver program i Python eller C# kommer du att använda dem ofta.

Vad är objektorienterad programmering?

Objektorienterad programmering är ett sätt att skriva program där man utgår från objekt. Ett objekt innehåller både data, till exempel ett namn, och funktioner, till exempel en metod som skriver ut information om objektet.

I traditionell programmering skriver du ofta kod i fristående funktioner. I OOP organiseras programmet runt klasser som beskriver hur objekt ska fungera. En klass är som en ritning. När programmet körs skapas riktiga objekt, alltså instanser av klassen.

Exempel: böcker

Föreställ dig att du vill skapa ett program som hanterar böcker. Med OOP kan du skapa en klass Bok med egenskaper som titel och författare, och metoder som skriver ut information.

class Bok:
    def __init__(self, titel, forfattare):
        self.titel = titel
        self.forfattare = forfattare

    def skriv_ut_info(self):
        print(f"{self.titel} av {self.forfattare}")

bok1 = Bok("Bröderna Lejonhjärta", "Astrid Lindgren")
bok2 = Bok("Cirkeln", "Mats Strandberg och Sara Bergmark Elfgren")

bok1.skriv_ut_info()
bok2.skriv_ut_info()

OOP är särskilt användbart när du bygger större program. Det gör koden mer strukturerad, lättare att felsöka och enklare att återanvända.

Öva: tänk objekt

Föreställ dig att du ska skapa ett program som hanterar elever i en skola. Fundera på:

  • Vilka egenskaper har en elev?
  • Vilka metoder skulle en elev kunna ha?
  • Hur skulle du representera detta i kod?

Skriv ner din idé som en klassbeskrivning i pseudokod:

Klass: Elev
Egenskaper: namn, klass, ålder
Metoder: skriv_ut_info(), byt_klass(ny_klass)

Sammanfattning

  • Objektorienterad programmering handlar om att organisera koden runt objekt.
  • En klass är en ritning och ett objekt är en instans av klassen.
  • OOP gör det enklare att bygga stora program genom att separera logik och data.
  • Centrala begrepp är klass, objekt, egenskap, metod och inkapsling.

Tillbaka till Kapitel 3