---
course: D0009E
topic: Objektorientering
---
# Objektorientering

## Föreläsning 11 – Introduktion till objektorientering (kapitel 15)
Koncept: [[Objektorientering]], [[Klasser]], [[Objekt]]

- Slides: [lecture11_p3.pdf](../../meta/raw%20course%20dump/D0009E/viewer/files/Slides%20i%20.pdf/lecture11_p3.pdf)
- Kodexempel:
  - [f11_point_simple.py](../../meta/raw%20course%20dump/D0009E/viewer/files/exempel/små_exempel/f11/f11_point_simple.py) — enkel punktklass
- Nyckelbegrepp: klass, objekt, instans, attribut, self, konstruktor (__init__)

## Föreläsning 12 – Metoder och objektinteraktion (kapitel 16)
Koncept: [[Klasser]], [[Metoder]], [[Konstruktorer]]

- Slides: [lecture12.pdf](../../meta/raw%20course%20dump/D0009E/viewer/files/Slides%20i%20.pdf/lecture12.pdf)
- Kodexempel:
  - [f12_time_example.py](../../meta/raw%20course%20dump/D0009E/viewer/files/exempel/små_exempel/f12/f12_time_example.py) — tidklass utan metoder
  - [f12_time_example_methods.py](../../meta/raw%20course%20dump/D0009E/viewer/files/exempel/små_exempel/f12/f12_time_example_methods.py) — tidklass med metoder
- Nyckelbegrepp: metoder, self, __str__, __repr__, jämförelseoperatorer, inkapsling

## Föreläsning 13 – Objektorientering fördjupning (kapitel 17)
Koncept: [[Klasser]], [[Metoder]], [[Konstruktorer]]

- Slides: [lecture13_p3.pdf](../../meta/raw%20course%20dump/D0009E/viewer/files/Slides%20i%20.pdf/lecture13_p3.pdf)
- Kodexempel:
  - [Time.py](../../meta/raw%20course%20dump/D0009E/viewer/files/exempel/små_exempel/f13/Time.py) — komplett tidklass
  - [Time2.py](../../meta/raw%20course%20dump/D0009E/viewer/files/exempel/små_exempel/f13/Time2.py) — utökad tidklass
- Nyckelbegrepp: operatoröverlagring, arv, polymorfism

## Större OOP-kodexempel
Koncept: [[Klasser]], [[Objekt]], [[Metoder]]

- [Ett objektorienterat exempel.pdf](../../meta/raw%20course%20dump/D0009E/viewer/files/Slides%20i%20.pdf/Ett%20objektorienterat%20exempel.pdf) — steg-för-steg OOP-genomgång (svenska)
- [Small object-oriented example.pdf](../../meta/raw%20course%20dump/D0009E/viewer/files/Slides%20i%20.pdf/Small%20object-oriented%20example.pdf) — OOP-genomgång (engelska)
- [obj_example.py](../../meta/raw%20course%20dump/D0009E/viewer/files/exempel/obj_example.py) — komplett OOP-exempel
- [fifoQueue.py](../../meta/raw%20course%20dump/D0009E/viewer/files/exempel/fifoQueue.py) — FIFO-kö utan OOP
- [fifoQueueObj.py](../../meta/raw%20course%20dump/D0009E/viewer/files/exempel/fifoQueueObj.py) — FIFO-kö med OOP
- [calc.py](../../meta/raw%20course%20dump/D0009E/viewer/files/exempel/calc.py) — enkel kalkylator
- [calc2.py](../../meta/raw%20course%20dump/D0009E/viewer/files/exempel/calc2.py) — förbättrad kalkylator
- [matrix.py](../../meta/raw%20course%20dump/D0009E/viewer/files/exempel/matrix.py) — matrisklass
- [monty_hall.py](../../meta/raw%20course%20dump/D0009E/viewer/files/exempel/monty_hall.py) — Monty Hall-simulation
- Nyckelbegrepp: datainkappling, FIFO-kö, klass vs instans, operatoröverlagring

## Lab 4 – Kontoregister (deadline: 2026-03-10)
Koncept: [[Klasser]], [[Objekt]], [[Metoder]]

- Uppgift 0 (övning, ej betygsatt): simulera anslagstavlor med klassen `Board`.
  - `Board`-klass med konstruktor, `message`-attribut.
  - Instanser representerar enskilda anslagstavlor.
- Huvuduppgift: kontoregistersystem
  - Krav: välstrukturerad OOP-design, ingen global variabel, kommenterad kod.
- Nyckelbegrepp: klasser, objekt, konstruktorer, metoder, inkapsling
- Inlämning: filuppladdning i Canvas + redovisning för handledare
