OOP — klasser, arv, polymorfi, enkapsulering
It A · STX · A-niveau · Avanceret programmering
💻 OOP — klasser, arv, polymorfi, enkapsulering
Objektorienteret programmering (OOP) er et programmeringsparadigme der organiserer kode som objekter med data (attributter) og adfærd (metoder). Klasser er skabeloner; objekter er instanser. De fire OOP-principper: Indkapsling (Encapsulation): data og metoder pakkes i en klasse; private/protected/public adgangsniveauer styrer hvad der er synligt udefra.
Nedarvning (Inheritance): en underklasse arver fra en superklasse og kan overskrive (override) metoder. Eksempel: class Cykel(Køretøj) arver Køretøj's max_speed.
Polymorfi (Polymorphism): samme metodenavn opfører sig forskelligt i underklasser. Eksempel: dyr.lyd() returnerer "Vov" for Hund og "Miav" for Kat.
Abstraktion (Abstraction): skjul implementeringsdetaljer, eksponer kun nødvendige grænseflader. Abstrakte klasser og interfaces.
Design patterns: Factory, Singleton, Observer, Decorator (Gang of Four).
Python-eksempel:
```python
class Animal:
def __init__(self, name): self.name = name
def speak(self): raise NotImplementedError
class Dog(Animal):
def speak(self): return f"{self.name}: Vov!"
class Cat(Animal):
def speak(self): return f"{self.name}: Miav!"
animals = [Dog("Fido"), Cat("Misser")]
for a in animals: print(a.speak())
```
SOLID-principperne: Single Responsibility, Open/Closed, Liskov Substitution, Interface Segregation, Dependency Inversion — grundlæggende for god OOP-arkitektur.
Læringsmål
- Implementere OOP (klasser, arv, polymorfi, enkapsulering)
- Anvende rekursion og memoization
- Implementere og forklare Big-O for centrale datastrukturer
- Implementere merge sort og quicksort
- Anvende BFS og DFS på grafer
Sådan kan du arbejde med emnet
- Skriv en klasse Dyr med attributterne navn og lyd og metoderne præsenter() og lavLyd(), og lav to nedarvede klasser Hund og Kat
- Forklar med egne ord, hvad enkapsulering er, og demonstrér med et eksempel, hvor du bruger private attributter og public metoder
- Diskutér, hvad polymorfi giver af fordele i et program med mange forskellige objekttyper
Arbejd iterativt med prototyper og dokumentation. Test, evaluér og dokumentér.
Øv dette emne med AI — quizzer, forklaringer og feedback tilpasset dit niveau.
Prøv Fagportalen gratis