Programación Orientada a Objetos Clase 2 Ing. Andrés M García O
Definición de Clases <ul><li>Para definir una Clase es necesario diseñarla </li></ul><ul><li>identificando cuales son sus ...
Definición de Clases <ul><li>¿Qué elementos de información almacenará, rastreará y manipulará la aplicación?. </li></ul><u...
Definición de Clases <ul><li>package code  // Definición del paquete en el que esta la  </li></ul><ul><li>clase </li></ul>...
Definición de atributos de una Clase Ing. Andrés M García O Atributo Clase Definición dynamic Permite añadir propiedades a...
Ejemplo Definición de atributos de una Clase Internal Ing. Andrés M García O Public Clase B Internal Clase A Directorio  d...
Definición de atributos de una Propiedad de la Clase Ing. Andrés M García O Atributo Propiedad Definición internal (valor ...
Ejemplo Definición de atributos de una Propiedad Ing. Andrés M García O Public Clase B Internal Clase A Directorio  de Cla...
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 c...
Ejemplo Definición de Método constructor Ing. Andrés M García O class Ejemplo {  public var status:String;  public functio...
Ejemplo Definición de Método  de instancia Ing. Andrés M García O class ThisTest  {  function thisValue():ThisTest  // Est...
Ejemplo Definición de Método  de descriptores de acceso ( Captador o definidor) Ing. Andrés M García O class GetSet {  pri...
Ejemplo Definición de Método  Lígado o vinculado Ing. Andrés M García O class ThisTest {  private var num:Number = 3;  fun...
Definición de Eventos <ul><li>Un evento es toda actividad que se sabe que va a suceder pero no se puede predecir cuando. P...
Definición de Interfases <ul><li>Una interfaz es una colección de declaraciones de métodos que permite la comunicación ent...
Definición Herencia <ul><li>La herencia es una forma de reutilizar el código que por medio de clases nuevas basadas en cla...
Ejemplo Definición Herencia Ing. Andrés M García O class Shape { public function area():Number { return NaN; } } class Cir...
Definición Polimorfismo <ul><li>La herencia  permite aplicar el concepto de  polimorfismo en el código de una clase hereda...
Ejemplo Definición Polimorfismo Ing. Andrés M García O class Shape { public function area():Number { return NaN; } } class...
Upcoming SlideShare
Loading in...5
×

Clase 2 Poo

3,365

Published on

Published in: Education, Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
3,365
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
54
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Clase 2 Poo

  1. 1. Programación Orientada a Objetos Clase 2 Ing. Andrés M García O
  2. 2. Definición de Clases <ul><li>Para definir una Clase es necesario diseñarla </li></ul><ul><li>identificando cuales son sus propiedades, métodos </li></ul><ul><li>y eventos. Para esto se requiere tener en cuenta </li></ul><ul><li>los siguientes aspectos: </li></ul><ul><li>Sirve para contener datos? </li></ul><ul><li>Aparece en la pantalla? </li></ul><ul><li>Tiene diversas funciones lógicas o de </li></ul><ul><li>procesamiento de datos? </li></ul>Ing. Andrés M García O
  3. 3. Definición de Clases <ul><li>¿Qué elementos de información almacenará, rastreará y manipulará la aplicación?. </li></ul><ul><li>¿Qué conjuntos de acciones deberán realizarse?. </li></ul><ul><li>¿qué información necesitará saber la clase para </li></ul><ul><li>realizar dicha acción?. </li></ul><ul><li>¿qué cambiará en la clase deben ser conocidos por las demás partes de la aplicación?. </li></ul><ul><li>Existen funciones y/o propiedades o internos que no le interesan a ninguna otra clase? </li></ul><ul><li>¿Es una clase que puede ser una subclase? </li></ul>Ing. Andrés M García O
  4. 4. Definición de Clases <ul><li>package code // Definición del paquete en el que esta la </li></ul><ul><li>clase </li></ul><ul><li>{ </li></ul><ul><li>import flash.display.MovieClip; //Importa los paquetes y </li></ul><ul><li>las clases necesarias. </li></ul><ul><li>public class Mi_clase extends MovieClip //Define la Clase </li></ul><ul><li>{ //debe tener el mismo nombre del archivo </li></ul><ul><li>public function Mi_clase(){ //Define el método constructor </li></ul><ul><li>// debe tener el mismo nombre de la clase </li></ul><ul><li>trace(&quot;Hola mundo!!&quot;);// Función básica </li></ul><ul><li> } </li></ul><ul><li>} </li></ul><ul><li>} </li></ul>Ing. Andrés M García O
  5. 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. 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. 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. 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. 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. 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 = &quot;inicializado&quot;; } } // 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. 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. 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 = &quot;hello&quot;; trace(myGetSet.publicAccess); // output: hello Referencia http://help.adobe.com/es_ES/ActionScript/3.0_ProgrammingAS3/
  13. 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(&quot;foo's this: &quot; + this); trace(&quot;num: &quot; + 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. 14. Definición de Eventos <ul><li>Un evento es toda actividad que se sabe que va a suceder pero no se puede predecir cuando. Por lo general se refiere a la interacción del usuario, pero existen mas eventos causados por diversos factores </li></ul><ul><li>Para llevar a cabo la gestión de eventos, se deben identificar tres elementos importantes: </li></ul><ul><ul><li>El origen del evento: ¿en qué objeto va a repercutir el evento? Por ejemplo, ¿en qué botón se hará clic o qué objeto Loader está cargando la imagen? </li></ul></ul><ul><ul><li>El evento: ¿qué va a suceder, a qué se va a responder? Es importante identificar esto porque muchos objetos activan varios eventos. </li></ul></ul><ul><ul><li>La respuesta: ¿qué pasos hay que llevar a cabo cuando ocurra el evento? </li></ul></ul>Ing. Andrés M García O
  15. 15. Definición de Interfases <ul><li>Una interfaz es una colección de declaraciones de métodos que permite la comunicación entre objetos que no están relacionados. </li></ul><ul><li>Por ejemplo, las APIs que contienen declaraciones de métodos que una clase puede utilizar para controlar objetos de evento. </li></ul>Ing. Andrés M García O
  16. 16. Definición Herencia <ul><li>La herencia es una forma de reutilizar el código que por medio de clases nuevas basadas en clases existentes. </li></ul><ul><li>Las clases existentes se llaman clases base o superclases, y las clases nuevas subclases. </li></ul><ul><li>La herencia es que permite reutilizar código de una clase base manteniendo intacto el código existente. </li></ul>Ing. Andrés M García O
  17. 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. 18. Definición Polimorfismo <ul><li>La herencia permite aplicar el concepto de polimorfismo en el código de una clase heredada. </li></ul><ul><li>El polimorfismo es la capacidad de utilizar un solo nombre de método para un método que se comporta de distinta manera cuando se aplica a distintos tipos de datos. </li></ul>Ing. Andrés M García O
  19. 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
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×