Onderwerpen

Schotel

Klassen, objecten en encapsulatie

Deze week maak je je eigen types. Een klasse is het ontwerp: ze legt vast welke attributen en welke methoden een object krijgt. Een object is één exemplaar volgens dat ontwerp, met eigen waarden voor die attributen. De constructor __init__ geeft een nieuw object zijn beginwaarden, en __repr__ bepaalt hoe het wordt afgedrukt.

Daarna leer je een object afschermen. Bij encapsulatie is de staat van een object verborgen voor de buitenwereld, en loopt alles via zijn methoden. Met een _ voor de naam van een attribuut en met @property maak je dat in Python zichtbaar.

Bij compositie heeft een object andere objecten als onderdeel, zoals een studiegroep die uit studenten bestaat.

Je leert ook waarde en identiteit uit elkaar houden: twee namen kunnen hetzelfde object aanwijzen, en dan zie je een wijziging via de ene naam ook via de andere.

Aan het eind van de week kun je een klasse ontwerpen die haar eigen staat bewaakt, en uitleggen wat dat oplevert tegenover een attribuut of een dictionary waar iedereen bij kan.

Waar je vandaan komt

In week 1 van Programmeren 2 riep je al methoden aan, zoals L.append(x), en bewaarde je gegevens die bij elkaar horen in een dictionary. Deze week schrijf je zelf methoden, in je eigen klasse. De dictionary komt in het college terug als vergelijking: daarin is niets verborgen.