9.1 Inleiding klassen en objecten
9.2 Een object aanmaken in BlueJ
9.3 Methoden
9.4 Object-inspector
9.5 Broncode
Oefeningen hoofdstuk 9
9.1 Inleiding klassen en objecten
Een klasse beschrijft alle objecten van een bepaalde soort. Uit een klasse worden objecten gecreëerd. Objecten zijn exemplaren van een klasse. Een instantie is een specifiek exemplaar van een klasse. Instantie betekent ongeveer hetzelfde als object. De naam van de klasse noteren we steeds beginnend met een hoofdletter terwijl objecten steeds beginnen met een kleine letter.
Voorbeeld
Als we spreken over wijn in het algemeen en niet in het bijzonder over één bepaalde wijn, dan verwijst het woord wijn naar de klasse wijn. Als we het hebben over een Saint-Emilion Grand Cru uit het jaar 2006 van wijnhuis Château Frombrauge, dan spreken we over één specifiek exemplaar, object of instantie.
Uit een klasse kunnen we oneindig veel objecten maken. De toestand van een object omvat de waarden van alle velden of attributen waarmee we een object definiëren. Objecten uit dezelfde klasse hebben allemaal dezelfde velden. De waarde van een bepaald veld kan echter verschillen bij ieder object.
Voorbeeld
Uit de klasse wijn kunnen we een oneindig aantal wijnen maken. Een wijn kunnen we definiëren aan de hand van de kleur, het jaartal, de wijnstreek, de druivensoort…
9.2 Een object aanmaken in BlueJ
Download het zip-bestand Cirkel en pak de bestanden uit. Start vervolgens BlueJ en open het project “Cirkel”. Op je scherm verschijnt het onderstaande venster.
De oranje gekleurde rechthoek stelt een klasse, namelijk de klasse Cirkel, voor in dit project. Door rechts te klikken op de klasse Cirkel en de optie “new Cirkel” te selecteren maken we een nieuw object aan. Namen van klassen beginnen steeds met een hoofdletter, terwijl de eerste letter van objectnamen steeds een kleine letter is.
Klik op OK en het object “cirkel1” verschijnt onderaan in de objectbank in de vorm van een rode rechthoek.
9.3 Methoden
Door rechts te klikken op een object kan je een menu met verschillende bewerkingen openen.
Als we een methode toepassen dan gebeurt er meestal iets met het object. De header van de methode noemen we de signatuur. Hier vinden we de nodige info om deze methode toe te passen.
Bij sommige methodes moeten we extra waarden invoeren, parameters (zie figuur 9.2). De informatie betreffende de vereiste parameter vinden we terug tussen haakjes. Deze methode verandert de waarde van één of meer velden en bijgevolg de toestand van het object. We noemen deze methodes “mutatormethodes” (mutators).
Voorbeeld
De methode “void boven (double x)” verschuift het object naar boven over de ingegeven afstand.
Andere methodes retourneren informatie over een object via een retourwaarde. We noemen deze methodes “accessormethodes” (accessors).
Voorbeeld
De methode “int getX ” geeft de positie X van het object weer.
We kunnen de functionaliteit van de objecten uitbreiden door methoden toe te voegen aan de broncode. Zo kunnen we bijvoorbeeld een methode “verplaats” toevoegen die de cirkel verplaatst over een afstand van 50 omhoog en vervolgens 50 naar links. Hiervoor voeg je de volgende code toe:
9.4 Object-inspector
Een object beschikt over een geheugen in de vorm van velden of attributen. De waarden van de attributen wordt ook wel de toestand van het object genoemd. Om de toestand van een object te raadplegen, klik je rechts op het object en kies je voor het menu “Inspect”.
9.5 Broncode
Door dubbel te klikken op het pictogram van de klasse kan je de broncode openen. De broncode definieert de informatie van de klasse. De broncode omschrijft welke velden methodes een klasse heeft en wat er gebeurt wanneer een methode toegepast wordt.
Wanneer we de broncode veranderen en de editor afsluiten, zien we dat het pictogram van de klasse gearceerd is. De gearceerde weergave wordt gebruikt om aan te duiden dat de broncode gewijzigd is. We moeten broncode van de klasse opnieuw compileren (vertalen) door op de knop compileren te klikken.
Oefeningen hoofdstuk 9
Download hier de bestanden van hoofdstuk 9.
Oefening 9-1 Neem het computergame dat je het laatst speelde. Is het een object of een klasse? Indien het een klasse is, geef dan enkele objecten. Indien het een object is, benoem dan de klasse.
Oefening 9-2 Open in BlueJ het project “Cirkel”.
- Maak een instantie van de klasse Cirkel.
- Roep de juiste methode aan zodat deze instantie zichtbaar wordt.
- Verander de kleur van de instantie in blauw.
- Verplaats het object over een afstand van 100 naar rechts en 50 naar onder.
Oefening 9-3 Open in BlueJ het project “Cirkel”.
- Maak een gele en een blauwe cirkel.
- Maak een zwarte cirkel door een foutieve kleur in te voeren.
- Verplaats de gele cirkel over een afstand van 100 naar rechts en de zwarte 100 naar onder.
Oefening 9.4 Open in BlueJ het project “Cirkel”. Voeg zelf een methode toe aan de broncode zodat een cirkel de verplaatsing maakt volgens een vierkant met zijde 100.