OOP — klasser, arv, polymorfi, enkapsulering
Kommunikation og IT A · HTX · A-niveau · Avanceret programmering
💻 OOP på A-niveau
Objektorienteret programmering organiserer kode i klasser (skabeloner) og objekter (instanser). De fire kerneprincipper er:
- Enkapsulering: data og metoder samles i klassen; adgang styres via public/private
- Arv: en klasse arver egenskaber fra en anden (
class Hund(Dyr):i Python) - Polymorfi: samme metodenavn, forskellig adfærd afhængigt af klassen
- Abstraktion: kompleksitet skjules bag simpel grænseflade
```python
class Dyr:
def __init__(self, navn):
self._navn = navn
def lyd(self):
return "..."
class Hund(Dyr):
def lyd(self):
return "Vuf!"
class Kat(Dyr):
def lyd(self):
return "Miav!"
for d in [Hund("Rex"), Kat("Mimi")]:
print(d._navn, d.lyd())
```
Brug @property og @setter for kontrolleret adgang til private attributter.
Læringsmål
- Implementere klassehierarki med arv og polymorfi i Python eller JavaScript
- Anvende enkapsulering korrekt med private/public attributter
- Forklare de 4 OOP-principper med kode-eksempler
- Debugge OOP-kode og identificere fejl i arvehierarkiet
Sådan kan du arbejde med emnet
- Design et klassehierarki for Køretøjer med en overordnet klasse Køretøj og underklasser Bil, Cykel og Lastbil — hvilke metoder bør være fælles, og hvilke bør overskrives (polymorfi)?
- Forklar forskellen på public, private og protected attributter med et eksempel fra en BankKonto-klasse
- Implementer en simpel klasse Dyr med metoden lavLyd() og lad to underklasser Hund og Kat overskrive den
Træningsforslag
- Byg et "zoo"-program med 5 dyretyper der arver fra Dyr
- Implementér et bankkonto-system med Konto, Lønkonto og Opsparingskonto
- Læs Pythons officielle guide til OOP
Øv dette emne med AI — quizzer, forklaringer og feedback tilpasset dit niveau.
Prøv Fagportalen gratis