Object oriëntatie is een andere manier van programmeren Het benadert meer de werkelijkheid
- Met object oriëntatie creëer je objecten die afgeleid zijn van werkelijke objecten
- Zo bestaat een FASTA in een object georiënteerde programmeertaal uit een object header en sequentie
Voordelen aan Inf 5 - Object Oriëntatie
- Is meer zoals de werkelijkheid
- Beter uitbreidbaar
- Beter hergebruik van code
- Gestructureerd
Procedureel vs object georiënteerd
| Procedureel | Object georienteerd |
|---|---|
| Data en functies liggen los van elkaar | Data en functies horen bij elkaar |
| Functies dragen waardes over | Objecten roepen elkaar aan |
Kenmerken
Drie kenmerken van object orientatie:
- Encapsulatie
- Inheritance
- Polymorfisme
Encapsulatie
Encapsulatie voorkomt dat data benaderbaar is zodat onmogelijke waardes worden voorkomen
Encapsulatie is:
- Omgeven van data (variabelen) met functionaliteit (functies)
- De variabelen zijn alleen te veranderen via de functies
(dia 12 t/m 19)
Data hiding
Een variabele voorafgegaan door een dubbele underscore (_ _ voornaam) is een verborgen variabele en alleen toegankelijk via functies
Classes
Een class is een nabootsing van een object uit de realiteit
Een stuk data staat dan centraal en is omringt met methodes.
Een class wordt gebruikt op dezelfde manier als een geïmporteerde code
Instance variabelen (self)
Objecten (instances) hebben ieder hun eigen waardes
De eigen waardes noemen we instance variabelen en worden voorafgegaan door self
(zie FASTA voorbeelden)
Instances
Instances zijn de objecten met ieder hun eigen waardes
Constructor: _ _ init _ _ (self)
De init(self) functie is een bijzondere functie
- We noemen dit de constructor en deze wordt aangeroepen bij initialisatie van het object
In de _ _ init _ _ (self) functie kun je instance variabelen initialiseren
De _ _ init _ _ (self) methode kun je ook uitbreiden met extra parameters voor de initialisatie (aanmaak) van het object
Bij het maken van een instance wordt de _ _ init _ _ (self) functie aangeroepen
Voorbeeld:
OO Designing
Betekenis van underscores
| Pattern | Voorbeeld | Betekenis |
|---|---|---|
| Een underscore vooraf | _var | Indicatie dat het de bedoeling is deze alleen intern te gebruiken |
| Een underscore aan het eind | var_ | Gebruikt om conflicten met gereservereerde sleutelwoorden te voorkomen |
| Dubbele underscore vooraf | __var | Zorgt voor het verbergen van een variabele in een class |
| Aan weerszijde een dubbele underscore | __var __ | Speciale interne methode in een class |
Dubbele Underscore
Dunder: dit is een dubble underscore
- Dunder snelheid:
__snelheid
Dunder init:
__init__(self)
Inheritance
de Drie kenmerken van object orientatie
-
Encapsulatie
-
Inheritance
-
polymorfisme
-
Een eiwit sequentie kan overeren van sequentie. het heeft alle eigenschappek plus nog wat extra eigenschappen.
-
bij inheritance kun je altijd zeggen “is-een” dus een eiwit sequentie is een goede overerving van sequentie
Polymorfisme
- Letterlijk veelvormig gedrag
- Het overschrijven van de standaard functies in de super-class.
- (denk aan de setsequence van Protein)
- (deze overschrijft de setsequence van de class sequence)