Doorgaan naar hoofdcontent

Hoe schrijf je een klasse in Java?




In objectgeörienteerde programmeertalen, zoals Java, bestaat een functionerend programma uit objecten (instanties van klassen), die met elkaar samenwerken om de taak uit te voeren waarvoor het programma is geschreven.

De programmeur dient de totale functionaliteit van het programma te verdelen over de objecten waaruit het programma gaat bestaan. In het algemeen wordt die functionaliteit gerealiseerd door objecten die methoden op elkaar aanroepen. Een belangrijk uitgangspunt voor een goed ontworpen programma is daarom om klassen te schrijven die ieder één goed gedefinieerde taak uitvoeren. Het streven is dus om een klasse één verantwoordelijkheid te geven. Dit komt de modulariteit van een programma ten goede door ervoor te zorgen dat het bestaat uit kleine, op zichzelf staande onderdelen die onafhankelijk van elkaar ontwikkeld en getest kunnen worden.

Klassendiagram

Wanneer je voor je programma een klasse gaat ontwerpen, kijk je naar welke attributen en methoden bij de klasse horen en wat de verschillende methoden zouden moeten doen om je klasse zijn taken te laten uitvoeren.

Voordat je begint met het schrijven van de code voor de klasse, kun je het beste eerst een gedetailleerd klassendiagram maken. Een goede voorbereiding is namelijk heel belangrijk, het voorkomt dat je dingen over het hoofd ziet. In dit diagram schrijf je de namen van de attributen en methoden van je klasse, en een constructor.

Je hebt hiervoor verschillende details nodig:

0 - Voor alle attributen en methoden met een terugkeerwaarde moet je het type (int, String, etc.) vastleggen. Ook moet je voor de methoden die parameters hebben, de namen en typen van die parameters vastleggen.

0 - Je moet een constructor ontwerpen, zodat je nieuwe instanties (objecten) kunt creëren.

0 - De toegangsspecificatie van de attributen en methoden van de klasse moeten worden vastgelegd. Doorgaans zijn de attributen private  en de methoden public.

Op basis van het gedetailleerde klassendiagram kun je beginnen met het schrijven van de code en de klasse implementeren. Vergeet ook niet om commentaar toe te voegen aan de code van je klasse, zodat het duidelijk is welke verantwoordelijkheid de klasse heeft binnen het programma en wat de methoden precies doen. Dit is niet alleen handig voor als een andere programmeur iets met jouw programma gaat doen, maar ook voor jezelf. Als je het programma een tijd niet gebruikt of er niet aan werkt, ben je vaak de details alweer vergeten. Door het in een commentaar erbij te zetten voorkom je dat.

Voorbeeld: de klasse Dobbelsteen

Er volgt hier een kort voorbeeld van het schrijven van een klasse in Java. Het gaat om de klasse Dobbelsteen die gebruikt kan worden in een dobbelsteenapplicatie en heeft als functionaliteit dat de gebruiker van de dobbelsteenapplicatie een worp moet kunnen doen en het aantal ogen van de dobbelsteen moet kunnen opvragen. De klasse is verantwoordelijk voor het genereren en toegankelijk maken van een willekeurig getal groter dan of gelijk aan een en kleiner dan of gelijk aan 6.

Het klassendiagram van Dobbelsteen ziet er zo uit:

Dobbelsteen
int ogen
Dobbelsteen()
int getOgen()
void werp()

En de code/implementatie van de klasse ziet er zo uit:





Reacties

Populaire posts van deze blog

Hoe is een klasse in Java opgebouwd?

In deze blog zal ik verder in gaan op wat de code die je ziet staan in een Java klasse precies betekent en op hoe een klasse is opgebouwd. In het stukje over hoe je een Java klasse schrijft  kwam het voorbeeld van de klasse Dobbelsteen al voorbij. Dit voorbeeld zal hier weer worden gebruikt. Op de onderstaande afbeelding is hij nogmaals te vinden. Wat opvalt aan de code van de klasse Dobbelsteen is dat er in bijna ieder onderdeel public of private  staat. Wat betekent dit nou precies? De sleutelwoorden public en private zijn toegangsspecificaties, of niveau's van toegankelijkheid, en bepalen waar de desbetreffende onderdelen zichtbaar en toegankelijk zijn. Java heeft vier verschillende toegangsspecificaties: 0 - private : het attribuut of de methode is alleen toegankelijk vanuit programmacode die tot dezelfde klasse behoort. 0 - package/ geen specificatie: het attribuut of de methode is toegankelijk vanuit programmacode die behoort tot een klassendefinit...