Objectgeoriënteerd Programmeren (2) 1 public class Stoel { // Instance variabelen int aantalPoten; int x; int y; VB: Java klasse Stoel //constructor (speciale methode om het object te “maken”) public Stoel(int poten, int xPositie, int yPositie) { aantalPoten = poten; x = xPositie; y = yPositie; } //methode public verplaats(int xPositie, int yPositie) { x = xPositie; y = yPositie; } } 2 Methoden: Resultaattypen • Bij een methode moet een resultaattype worden opgegeven: – int – String – bool – void -> geen resultaat Bij resultaattype != void, moet returnstatement worden ingevoegd 3 Resultaattypen vb void verplaats(int xPositie, int yPositie) { // geen resultaattype (void): voert actie uit x = xPositie; y = yPositie; } int geefAantalPoten() { // wel resultaattype (int): geeft waarde terug return aantalPoten; } 4 Overerving • Klassen kunnen kinderen hebben • Een kindklasse erft alle eigenschappen van zijn ouder • Kindklasse kan eigenschappen overschrijven van ouder en/of voegt eigenschappen toe 5 Overerving (2) public class Car extends Actor { … } • Het codewoord “extends” geeft aan dat Car een kind is van Actor • Dit kan (want elke Car is ook Actor): Actor mijnActor = new Car() • Dit niet (want niet elke Actor is Car): Car mijnCar = new Actor() 6 Toegangsrechten • 3 rechtenniveaus – Public • Zichtbaar buiten de klasse (dus voor “iedereen”) – Protected • Alleen zichtbaar in de klasse zelf en voor de kinderen van de klasse – Private • Alleen zichtbaar voor de klasse zelf 7 Toegangsrechten vb private int x; private int y; protected int aantalPoten; public void verplaats(int xPositie, int yPositie) { if (x-positie > 0) x = xPositie; if (y-positie > 0) y = yPositie; } 8 Toegangsrechten vb (2) Stoel mijnStoel = new Stoel(4, 100, 150); //kan niet: geen toegang, want is protected: mijnStoel.aantalPoten = 5; //kan wel, want public: mijnStoel.verplaats(86,120); 9 private int x; private int y; Get- en Set-methoden public int getX() Waarde van x kan worden opgevraagd, { maar niet worden gewijzigd return x; } public int getY() Waarde van x kan worden opgevraagd, { en worden gewijzigd return y; } public void setY(int yValue) { if (yValue >= 0) y = yValue; Er is wel beveiliging ingebouwd tegen else negatieve waarden y = 0; } 10