5. Definición de atributos de una Clase Ing. Andrés M García O Atributo Clase Definición dynamic Permite añadir propiedades a instancias en tiempo de ejecución. final No debe ser heredada por otra clase. internal (valor predeterminado) Visible para referencias dentro del paquete actual. public Visible para referencias en todas partes.
6. Ejemplo Definición de atributos de una Clase Internal Ing. Andrés M García O Public Clase B Internal Clase A Directorio de Clases 1 Public Clase C Directorio de Clases 2 Public Clase B Var A:Clase A Metodo Cambiar _A() Public Clase C Var B:Clase B Var A:Clase A Metodo Cambiar _B() No se puede Porque es Internal
7. Definición de atributos de una Propiedad de la Clase Ing. Andrés M García O Atributo Propiedad Definición internal (valor predeterminado) Visible para referencias dentro del mismo paquete. private Visible para referencias dentro de la misma clase. protected Visible para referencias en la misma clase y en clases derivadas. public Especifica que una propiedad pertenece a la clase en lugar de a las instancias de la clase. static Especifica que una propiedad pertenece a la clase en lugar de a las instancias de la clase. UserDefinedNamespace Nombre de espacio de nombres personalizado definido por el usuario.
8. Ejemplo Definición de atributos de una Propiedad Ing. Andrés M García O Public Clase B Internal Clase A Directorio de Clases 1 Public Clase C Directorio de Clases 2 Public Clase B {Private x Protected y Public z Var A:Clase A Metodo Cambiar _x(int) } Public Clase C extends B { This.x=5 This.Y=3 This.z=0 This.cambiar_x(5) } No se puede Porque es Private. “ This” se refiere A una propiedad heredada
9. Definición métodos de una Clase Ing. Andrés M García O Tipo de método Definición Constructor Comparten el nombre con la clase en la que se definen. Todo el código que se incluya en un método constructor se ejecutará siempre que una instancia de la clase se cree con la palabra clave new. Estático Estos métodos, que se asocian a una clase en lugar de a una instancia de clase, son útiles para encapsular la funcionalidad que afecta a algo más que el estado de una instancia individual. De instancia Estos métodos, que se asocian a instancias de una clase en lugar de a la clase como un todo Descriptores de acceso (captador y definidor) Las funciones descriptoras de acceso get y set, también denominadas captadores y definidores, permiten implementar los principios de programación relacionados con la ocultación de información y encapsulación Vinculado es simplemente un método que se extrae de su instancia. Los métodos que se pasan como argumentos a una función o se devuelven como valores desde una función son ejemplos de métodos vinculados.
10. Ejemplo Definición de Método constructor Ing. Andrés M García O class Ejemplo { public var status:String; public function Ejemplo() { status = "inicializado"; } } // Código que invoca la clase Ejemplo var mi_Ejemplo : Ejemplo = new Ejemplo(); trace(mi_Ejemplo.status); // output: inicializado // El método constructor lleva el // mismo nombre de la Clase Referencia http://help.adobe.com/es_ES/ActionScript/3.0_ProgrammingAS3/
11. Ejemplo Definición de Método de instancia Ing. Andrés M García O class ThisTest { function thisValue():ThisTest // Este es el método de instancia { return this; } } var myTest:ThisTest = new ThisTest(); trace(myTest.thisValue() == myTest); // output: true Referencia http://help.adobe.com/es_ES/ActionScript/3.0_ProgrammingAS3/
12. Ejemplo Definición de Método de descriptores de acceso ( Captador o definidor) Ing. Andrés M García O class GetSet { private var privateProperty:String; public function get publicAccess():String // Método Captador { return privateProperty; } public function set publicAccess(setValue:String):void // Método definidor { PrivateProperty = setValue; } } var myGetSet:GetSet = new GetSet(); trace(myGetSet.publicAccess); // output: null myGetSet.publicAccess = "hello"; trace(myGetSet.publicAccess); // output: hello Referencia http://help.adobe.com/es_ES/ActionScript/3.0_ProgrammingAS3/
13. Ejemplo Definición de Método Lígado o vinculado Ing. Andrés M García O class ThisTest { private var num:Number = 3; function foo():void // Definicón de Método ligado { trace("foo's this: " + this); trace("num: " + num); } function bar():Function { return foo; // Retono de Método ligado } } var myTest:ThisTest = new ThisTest(); var myFunc:Function = myTest.bar(); trace(this); // output: [object global] myFunc(); /* output: foo's this: [object ThisTest] output: num: 3 */ Referencia http://help.adobe.com/es_ES/ActionScript/3.0_ProgrammingAS3/
14.
15.
16.
17. Ejemplo Definición Herencia Ing. Andrés M García O class Shape { public function area():Number { return NaN; } } class Circle extends Shape // Definición de herencia de la clase Shape { private var radius:Number = 1; override public function area():Number { return (Math.PI * (radius * radius)); } } Referencia http://help.adobe.com/es_ES/ActionScript/3.0_ProgrammingAS3/
18.
19. Ejemplo Definición Polimorfismo Ing. Andrés M García O class Shape { public function area():Number { return NaN; } } class Circle extends Shape { private var radius:Number = 1; override public function area():Number { return (Math.PI * (radius * radius)); } } Referencia http://help.adobe.com/es_ES/ActionScript/3.0_ProgrammingAS3/ class Square extends Shape { private var side:Number = 1; override public function area():Number { return (side * side); } } Las funciones resaltadas en rojo tienen comportamiento diferente pero manejan el mismo nombre esto se conoce como sobre carga o polimorfismo