ciao,
di solito, se conforme alla best practice (il che non e' garantito solo per come si scrive un nome di variabile) indica un campo privato che pero' e' in qualche misura esposto, normalmente tramite getter/setter o uno di questi, rispettivamente per implementare readOnly o writeOnly.
Una tipica implementazione puo' essere questa:
messa in questo modo e' equivalente a scrivere:codice:public class FontWrapper { private _fontSize:Number; public function get fontSize():Number { return _fontSize; } public function set fontSize(v:Number):void { _fontSize = v; } ...
ma allora che vantaggi ci sono ad usare l'esempio in cima?codice:public class FontWrapper { public fontSize:Number; ...
Cosi' come confrontati finora, non molti, in questo esempio cominciano a diventare piu' evidenti:
Un altro uso tipico e' condizionare lo stato della classe (aggiornamento) in base al valore del campo in questione:codice:public class FontWrapper { private _fontSize:Number; // fontSize is readOnly public function get fontSize():Number { return _fontSize; } ...
In altri casi _fontSize puo' essere semplicemente un campo protetto, quindi destinato ad essere usato in classi che ereditano:codice:public class FontWrapper { private _fontSize:Number; public function get fontSize():Number { return _fontSize; } public function set fontSize(v:Number):void { _fontSize = v; if(v > 10) applyAlienAlias(); } ... private function applyAlienAlias():void { ... } ...
codice:public class SuperHero { protected var _fontSize = 10; ...Non e' tutto qui naturalmente, e' solo per dire che l'uso di campi privati in combinazione con getter/setter e' una pratica frequentissima.codice:public class Thor extends SuperHero { // the constructor, no need to specify access type nor return type since it's always void function Thor (){ _fontSize = 20; ...
Jaco


Rispondi quotando