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

ProcedureelObject georienteerd
Data en functies liggen los van elkaarData en functies horen bij elkaar
Functies dragen waardes overObjecten roepen elkaar aan

Kenmerken

Drie kenmerken van object orientatie:

  1. Encapsulatie
  2. Inheritance
  3. 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

PatternVoorbeeldBetekenis
Een underscore vooraf_varIndicatie dat het de bedoeling is deze alleen intern te gebruiken
Een underscore aan het eindvar_Gebruikt om conflicten met gereservereerde sleutelwoorden te voorkomen
Dubbele underscore vooraf__varZorgt 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)