Skip to content
Objektorienterad programmering
Datalogi · Gymnasiet 2 · Programmeringsparadigmer · 3.º Período

Objektorienterad programmering

Genomgång av grundpelarna i objektorienterad programmering: inkapsling, arv och polymorfism. Eleverna skapar klasshierarkier för att modellera verkliga system.

Kort sammanfattning:Objektorienterad programmering (OOP) är det dominerande paradigmet inom modern mjukvaruutveckling. Istället för att bara skriva listor med instruktioner, lär sig eleverna att bygga program som modeller av verkligheten. Vi fokuserar på klasser och objekt, och hur vi kan kapsla in data och beteende för att skapa modulär och återanvändbar kod.

Skolverket KursplanerDAODAT0 - 3. ProgramkonstruktionDAODAT0 - 5. Kodkvalitet

Om detta ämne

Objektorienterad programmering (OOP) är det dominerande paradigmet inom modern mjukvaruutveckling. Istället för att bara skriva listor med instruktioner, lär sig eleverna att bygga program som modeller av verkligheten. Vi fokuserar på klasser och objekt, och hur vi kan kapsla in data och beteende för att skapa modulär och återanvändbar kod.

I kursen Datalogi fördjupar vi oss i de tre pelarna: inkapsling, arv och polymorfism. Eleverna får lära sig hur man skapar hierarkier där en 'Bil' kan ärva egenskaper från ett 'Fordon'. Detta sätt att tänka är centralt för att kunna hantera stora kodbaser och samarbeta i projekt, vilket är ett viktigt mål i kursplanen.

OOP blir begripligt när eleverna får designa system för hand och diskutera relationer mellan objekt innan de börjar koda klasserna.

Nyckelfrågor

  1. Vad är fördelarna med inkapsling?
  2. Hur fungerar arv mellan klasser?
  3. Vad innebär polymorfism i praktiken?

Se upp för dessa missuppfattningar

Vanlig missuppfattningAtt en klass och ett objekt är samma sak.

Vad man ska lära ut istället

Använd liknelsen med en pepparkaksform (klass) och pepparkakorna (objekt). Genom att skapa flera objekt från samma klass med olika data ser eleverna skillnaden tydligt.

Vanlig missuppfattningAtt arv alltid är den bästa lösningen för att dela kod.

Vad man ska lära ut istället

Visa exempel där arv blir rörigt (t.ex. en 'Pingvin' som ärver från 'Fågel' men inte kan flyga). Diskussioner om komposition kontra arv hjälper eleverna att tänka mer flexibelt.

Idéer för aktivt lärande

Se alla aktiviteter

Vanliga frågor

Varför är inkapsling så viktigt?
Inkapsling skyddar data från att ändras på felaktiga sätt av andra delar av programmet. Det gör koden säkrare och lättare att underhålla, eftersom man kan ändra den inre logiken i en klass utan att resten av systemet går sönder.
Hur kan aktivt lärande hjälpa eleverna att förstå OOP?
OOP handlar om relationer och arkitektur, vilket ofta är svårt att se i textform. Genom att använda fysiska modeller, som att bygga med LEGO eller rita stora klassdiagram på whiteboarden i grupp, kan eleverna 'se' hur systemet hänger ihop innan de fastnar i syntaxdetaljer.
Vad innebär polymorfism på ett enkelt sätt?
Det betyder 'många former'. I programmering innebär det att olika objekt kan svara på samma kommando på sitt eget sätt. Till exempel kan både en 'Hund' och en 'Katt' ha metoden 'låt()', men den ena skäller och den andra mjauar.
Vilket programspråk är bäst för att lära ut OOP?
Java och C# är klassiska val eftersom de är strikt objektorienterade. Python fungerar också utmärkt och har en lägre tröskel, men det kräver att läraren är tydligare med att förklara principerna eftersom språket är mer tillåtande.
Edited by Adriana Perusin, Editor-in-Chief, Flip Education