Objectgeoriënteerd Programmeren (2)
VB: Java klasse Stoel public class Stoel { // Instance variabelen int aantalPoten; int x; int y; //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)
Methoden: Resultaattypen Bij een methode moet een resultaattype worden opgegeven: int String bool void -> geen resultaat Bij resultaattype != void, moet returnstatement worden ingevoegd
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;
Overerving Klassen kunnen kinderen hebben Een kindklasse erft alle eigenschappen van zijn ouder Kindklasse kan eigenschappen overschrijven van ouder en/of voegt eigenschappen toe
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()
Toegangsrechten 3 rechtenniveaus Public Protected Private 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
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; }
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);
Get- en Set-methoden private int x; private int y; public int getX() { return x; } public int getY() return y; public void setY(int yValue) if (yValue >= 0) y = yValue; else y = 0; Waarde van x kan worden opgevraagd, maar niet worden gewijzigd Waarde van x kan worden opgevraagd, en worden gewijzigd Er is wel beveiliging ingebouwd tegen negatieve waarden