Het Object Oriented denken

Object georiënteerd denken (OO) is een van de modernste ontwerp- en programmeer-methode van dit moment. We gebruiken OO-systemen om afzonderlijke onderdelen van een ontwerp ook echt als afzonderlijke objecten te kunnen beschouwen; met een eigen toestand en een 'eigen plaats' ergens op de wereld (meestal ergens op een harde schijf of tijdelijk ergens in een werkgeheugen van een computer). Elk object heeft zijn plaats in een geheel. Objecten kunnen ontstaan ('geboren worden') en eigenschappen van het moeder-object kunnen overgeerfd worden op de 'dochter'.

Met de browsers Netscape en/of Internet Explorer is het mogelijk om elke onderdeel van de browser en de web-page - die je in de browser hebt staan - te ontleden. Elk onderdeel - zoals window, document, frame, image, etc. als object te bekijken. Die laatste soorten objecten bevatten bepaalde verzamelingen properties die je weer verder ergens voor kunt gebruiken.

Met de browser kun je objecten benaderen en properties lezen en schrijven. De naam of de inhoud van een object of een property kun je uit het zgn. object-model halen, maar verder kun je er (nog) niks mee doen. (Met DHTML kun je met properties wel wat doen. Maar binnen dit vak wordt er nog niet met DHTML gewerkt.)

Twee soorten

Men kan een object ruim zowel als eng, d.w.z. binnen de precieze kaders uit het OOPS wereldje definieren Bij dit vak en bij dit practicum nemen we de definitie zoals die binnen de browsers geldt:

De eerste soort objecten zijn géén echte objecten in de zin zoals de OO-deskundigen dat zien, maar wel objecten zoals we dat bij dit vak 'MMp' zien. De laatste soort bevat passieve informatie en data en geen properties zoals de OO-deskundigen die graag definieren. Maar de allerruimste definitie van object is eenvoudigweg:

Zelfs een programma kan binnen de ruimste definitie van object een object zijn. Elk object heeft binnen een object georiënteerd systeem minimaal een indentificatienummer. Deze identificatienummers worden met ID aangeduid. Middels de eerste en de laatste definitie kunnen we een groot aantal dingen als objecten onderscheiden, zoals:

Bij dit practicum blijven we de ruimste definitie hanteren: al die dingen die een naam of een nummer hebben noemen we objecten.

Het aanmaken van objecten dient te geschieden op de daarvoor meest geschikte manier. Ook als elk object een onderdeel is of wordt van een interactieve multimedium-productie. Dat laatste is heel belangrijk, want onze stelling is dat praktisch alles wat wij met ISM onderzoek en onderwijs doen (en wat mij betreft moeten doen) gericht is op interactieve multimediale leermiddelen. Als we nog iets aan lineaire leermiddelen doen is dat toch om vroeg of laat het onderdeel - als object - te integreren in een of andere interactieve multimediale presentatie. Al is het maar als onderdeel op een CD-i. Lineaire media als onderzoeks-topic bij Toegepaste Onderwijskunde is passé. Wij richten ons op interactieve multimediale programmatuur, op de som der delen, kortom op de integratie van alle betrokken objecten.

Overerving

Er is een ruime en een enge definitie van overerving. Beiden spelen bij dit vak een rol. De enge definitie is dat een verandering op een hoger hierachisch niveau invloed heeft op alle objecten van een lager niveau. De ruime definitie van overerving is wat botter en eenvoudiger te doorgronden: de overerving van eigenschappen van het ene object naar het andere object gebeurt slechts op het moment van ontstaan. Dat is het beste te begrijpen aan de hand van een voorbeeld van het kopiëren van een file. Als men een file copieert vanuit een bestaande file is de tweede file die dan ontstaat een getrouwe copie van de eerste waaruit hij is ontstaan. Verdere bewerking maakt dat hij/zij gaat afwijken van zijn/haar "moeder". Een dergelijk object is - na een verdere bewerking - uiteindelijk niet meer te vergelijken met het oorspronkelijke object. Elk object gaat zijn eigen leven leiden. Een ander voorbeeld is het kopiëren van een button, incl. het onderliggende script. Als een dergelijke button gecopieerd ('gekloond') is zijn alle "eigenschappen" van de "moeder"-object overgeërfd naar het "dochter"-object. Deze dochter-object of button in dit geval kan verder "gemuteerd" worden door de programmeur. Het is enigszins te vergelijken met een voorbeeld uit de biologie: het klonen van cellen. Na het klonen van cellen kan elke cel afzonderlijk verder voorleven, bestudeerd of verwerkt worden. De eigenschappen zijn overgeërfd. Binnen het OOPS wereldje wenst men ook na de 'geboorte' van objecten dat de eigenschappen op centraal niveau de eigenschappen te kunnen beinvloeden.

Enschede, 7 dec. '99.