Cuando los atributos son "vitales" para el funcionamiento del objeto, lo adecuado es hacerlo como privado, pero un atributo privado no puede ser accedido fuera de la definicion de la clase o de un hijo de ella, aqui es donde entra los getters y setters. Ellos te permiten crear como un "alias" para llegar a esos atributos privados. Ejemplo:
Código :
class MyClass
{
private var prop:Number;
function MyClass()
{
}
public function set privateProp(param:Number)
{
this.prop = param;
}
public function get privateProp()
{
return prop;
}
}y el .fla
Código :
import MyClass;
var obj:MyClass = new MyClass();
obj.privateProp = 3;
trace(obj.prop); // genera un error, una propiedad privada no puede ser acceddida
trace(obj.privateProp); // salida: 3
Hacer getter y setter para un atributo público es algo casi que "inutil" porque muy bien puedes acceder a él directamente. Con un setter puede hacer validaciones extras que necesites, por ejemplo:
Código :
public function set privateProp(param:Number)
{
if (param > 5)
this.prop = param;
else
this.prop = 5;
}saludos