Ik meen ooit ergens gelezen te hebben dat het niet netjes is om klassevariabelen direct aan te spreken. Echter vraag ik me af waarom dit niet netjes is, aangezien veel standaardklassen in o.a. JS wel werken met directe benadering van variabelen (althans zo oogt het voor mij) bv: document.location i.p.v. document.getLocation()?
JS is gewoon een beetje een raar taaltje
In JS kunnen methods en objecten gewoon een property zijn van andere objecten. Intern is alles onder water gewoon een string; elk object of elke custom method kan je omzetten naar een string-representatie, aanpassen en er weer een object of method van maken
Intentionally left blank
Ok. Maar stel dat ik een computerspel maak; ik vind units[1].speed = 5; dan nog steeds mooier dan unit = units.getUnit(1); unit.getSpeed();.
Verwijderd schreef op 24 oktober 2004 @ 16:47:
Ok. Maar stel dat ik een computerspel maak; ik vind units[1].speed = 5; dan nog steeds mooier dan unit = units.getUnit(1); unit.getSpeed();.
units[1].setSpeed(5)
kan ook (afhankelijk van de taal).
Maar het handige van het op deze manier programmeren is dat je altijd de klasse kan veranderen (bijvoorbeeld het datatype van speed aanpassen terwijl je applicatie nog wel kan compilen.
Of dat er in de toekomst iets gelijktijdig moet veranderen bij het veranderen van die snelheid, dan is dat zo ook makkelijker aan te passen
Ok. Daar had ik inderdaad nog niet aan gedacht. Dan is het inderdaad wel handig om alles via functies aan te passen.
Verwijderd
Een aantal talen ondersteunt zgn properties. Achter de schermen zijn deze altijd gemapt naar accessor en mutator functies. Het kost iets meer code de class te bouwen en het lijkt vervolgens alsof de property een public member variable is.
De idee om member variables niet direct te kunnen benaderen (encapsulation) staat objecten toe hun interne toestand consistent te houden.
De idee om member variables niet direct te kunnen benaderen (encapsulation) staat objecten toe hun interne toestand consistent te houden.
Pagina: 1