Loading presentation...

Present Remotely

Send the link below via email or IM

Copy

Present to your audience

Start remote presentation

  • Invited audience members will follow you as you navigate and present
  • People invited to a presentation do not need a Prezi account
  • This link expires 10 minutes after you close the presentation
  • A maximum of 30 users can follow your presentation
  • Learn more about this feature in our knowledge base article

Do you really want to delete this prezi?

Neither you, nor the coeditors you shared it with will be able to recover it again.

DeleteCancel

Make your likes visible on Facebook?

Connect your Facebook account to Prezi and let your likes appear on your timeline.
You can change this under Settings & Account at any time.

No, thanks

Programación Orientada a Objetos

No description
by

Marcos Farabollini

on 5 June 2014

Comments (0)

Please log in to add your comment.

Report abuse

Transcript of Programación Orientada a Objetos

Definición
La programación orientada a objetos (POO) es una filosofía de diseño y desarrollo de software donde el modelo informático es un reflejo de las entidades del mundo real
OO en ABAP
ABAP no es un lenguaje “puro” orientado a objetos.
El runtime de ABAP soporta tanto el modelo de programación procedural como el de ABAP Objects en cualquier programa ejecutable, módulos o funciones.
Comparativa
Temario
Introducción OO
POO vs Estructurada
Clases
Instancias
Interfaces
Excepciones
Ejercicio

Programación Orientada a Objetos
A diferencia de los lenguajes tradicionales, donde existen procedimientos por un lado y datos por el otro, la POO permite a los programadores representar cada entidad del problema como un objeto “encapsulado” que contiene tanto sus datos y cómo los “comportamientos” gestionan sobre ellos.
Ventajas
Fomenta la reutilización y extensión del código
Facilita el mantenimiento del software
Crea sistemas mas flexibles, que en un futuro son modificables
Pilares de la POO
Encapsulamiento
Es el término que define formalmente la fusión dentro del mismo objeto de sus datos y métodos (comportamiento). Los objetos son tratados como “caja negra”, de manera que sólo sus métodos pueden actuar sobre sus datos, brindando independencia en la implementación de los mismos
Abstracción
propiedad que permite representar las características esenciales de un objeto sin preocuparse de las restantes características ( no esenciales ). La abstracción se centra en la vista externa de un objeto, de modo que sirva para separar el comportamiento esencial de un objeto de su implementación.
Polimorfismo
Capacidad que tienen objetos de distintas clases de responder a un mismo método y obtener diferentes reacciones
Herencia
Se produce cuando una clase (la subclase) comparte la estructura (atributos) y el comportamiento (métodos) definidos en una o más clases (superclases).

Pilares de
POO
ABAP
Java
C++
Si
Si
Si
No
No
Si
Si
Si
Aplication
Server
No
Si
Si
Si
No
JVM
No
No
No
No
No
S.O.
Se permite herencia múltiple
Es un lenguaje puro orientado a objetos
Liberación de objetos de forma automática
Existe el concepto “interfaz”
Heredan de la clase OBJECT
Manejo de parámetros opciones de forma explicita
Los programas se ejecutan sobre…
Desventajas
Curva de aprendizaje mas larga
Dificultad en la abstracción
Clases en ABAP Objects
Las clases son una definición abstracta de objetos. Esto significa que la definición o declaración de un objeto es la clase. Luego, los objetos propiamente dichos serán "ejemplares" de una clase cualquiera. Esta acción de crear un objeto a partir de una clase se llama instanciar, por eso se conocen a los objetos como instancias de una clase.
Clases Globales
Clases Locales
Se definen en la Trx SE24
Pueden ser utilizadas desde cualquier programa ABAP
Se definen dentro de un programa ABAP
Solo pueden ser utilizadas dentro del programa en el que se definio
Sentencia para la declaración de una clase local:
CLASS <class> DEFINITION.

ENDCLASS.

Sentencia para la implementación de una clase local:
CLASS <class> IMPLEMENTATION.

ENDCLASS.
Componentes de una Clase
Los componentes de una clase conforman su contenido, y se declaran en la parte declarativa del código. Definen las propiedades de los objetos de esa clase.

Cuando la clase se define, cada componentes se asocia a una de las tres posibles secciones de visibilidad: público, protegido o privado. Las secciones de visibilidad definen la interfaz externa de la clase.(ver apartado sobre visibilidad más abajo)

Todos los componentes son visibles dentro de la clase, y comparten el mismo espacio de nomenclatura, por lo que cada componente debe tener un nombre unívoco dentro de su clase.
Componentes de una Clase
Atributos
Son los campos internos de DATOS definidos para la clase. Pueden declararse a partir de cualquier tipo de dato válido en ABAP.
Métodos
Los métodos son procedimientos que definen el comportamiento de un objeto, su funcionalidad asociada. Se utilizan para acceder a los atributos privados de una clase, como también modificarlos mediante una interfaz con parámetros que les permite recibir valores y devolver valores después de la llamada.
Constructores
Los constructores son un tipo especial de métodos y su definición e implementación es igual que cualquier otro método. Son llamados automáticamente por el sistema (cuando se crea un objeto)
Eventos
Un evento es una acción que se ejecuta dinámicamente. Son usados por los objetos o las clases para desencadenar métodos en otros objetos o clases, llamados por los usuarios. Son semejantes de los métodos, sin embargo solo poseen parámetros de salida pasados por el disparador y el método manejador los recibe como entrada.
Atributos dependientes de instancia
Los atributos ESTATICOS
El contenido de estos atributos define el estado propio e individual de cada objeto en cada instancia de clase.
Definen el estado de la clase válido para todas las instancias de la mismo.
Existen, por lo tanto, sólo una vez para la clase, y son accesibles durante todo el runtime de la clase. Todos los objetos pueden acceder a sus atributos estáticos de su clase, y si se cambia un atributo estático en un objeto, el cambio es visible en todos los demás objetos de la clase.
Dependientes de la instancia
Se declaran usando la sentencia METHODS y pueden acceder a todos los atributos de una clase y desencadenar algún evento de la misma.

Se invocan: CALL METHOD <cref>-><meth>.
Métodos estáticos (independientes de instancia)
Se declaran usando la sentencia CLASS-METHODS. Sólo pueden acceder a los atributos estáticos y desencadenar eventos estáticos.

Se invocan: CALL METHOD <class>=><meth>.
Tipos y Constantes
Los tipos se datos se declaran dentro de la clase por única vez y se realiza utilizando la sentencia TYPES.

Las constantes permiten que dar a un objeto de dato interno un valor fijo durante su declaración y éste no puede ser modificado. La sentencia usada es CONSTANTS.
Visibilidad
Los componentes de una clase se pueden declarar en tres áreas de distinta visibilidad: Cuando la clase se define, cada componentes se asocia a una de las tres posibles secciones de visibilidad: público, protegido o privado. Las secciones de visibilidad definen la interfaz externa de la clase.
Public section:
Permite que los componentes pueden ser accedidos por todos los usuarios de la clase, métodos de la clase y además por cualquier clase que herede de ella.

Protected section:
Los componentes solo logran ser accedidos por los métodos de la clase y de las clases que heredan de ella

Private section:
Los componentes sólo serán accedidos por métodos de la misma clase.
Objetos
Los objetos son entidades tangibles de una clase que residen dentro de un contexto de una sesión interna (área de memoria de un programa ABAP).
Características de un objeto
El
estado,
los valores concretos (datos) asignados a los atributos.

El
comportamiento
, se define por los procedimientos que puede realizar un objeto.

La identidad es una propiedad de un objeto que lo diferencia del resto, como es el nombre.
Creación de un objeto
La sentencia CREATE OBJECT <cref> crea una instancia de una clase. La variable referenciada <cref> contiene la referencia al objeto.
Tiempo de vida de un objeto
Un objeto solo puede seguir existiendo siempre y cuando haya una referencia a un objeto ó cuando un objeto maneja el evento de otro objeto (handler). De lo contrario el objeto es borrado de la memoria automáticamente.
Herencia de clases
La herencia se realiza entre dos clases (una superclase y una subclase). La subclase heredará los componentes públicos y privados de la superclase, logrando el mismo comportamiento. Teniendo la posibilidad de extender o limitar ese comportamiento para proveer una acción requerida.
Definición para una herencia
CLASS <subclass> DEFINITION INHERITING FROM <superclass>.
Events can only have EXPORTING parameters
only those events handlers that have registred themselves using SET HANDLER
EVENTS: <event> EXPORTING VALUE (<ex_par>) TYPE type.
RAISE EVENT <event> EXPORTING <ex_par> = <act_par>

METHODS: <on_event> FOR <event> OF <classname> IMPORTING <imp_par1> SENDER

Constructores
Los constructores no se heredan, existen dos maneras de implementarlo que dependerá de si existe dependencia ó no a una instancia.
Constructores dependientes de instancia
Constructores estáticos
CALL METHOD SUPER->CONSTRUCTOR EXPORTING…
CLASS_CONSTRUCTOR
Interfaz
El objetivo de una interfaz es establecer relaciones entre clases sin usar herencia, ya que a veces no hay una super-clase adecuada para establecer una relación de herencia.
Una interfaz no puede instanciar objetos, sin embargo pueden definirse atributos static y final. Se utiliza principalmente para la definición de métodos abstractos, por lo cual la implementación se realiza en otras clases. Todos los componentes son visibles para las clases en donde se implementan los métodos definidos.
Definición de interfaz
INTERFACE <intf>.

ENDINTERFACE.


Implementación de la interfaz
la implementación debe estar dentro de una clase que usa esta interfaz
METHOD <intf~imeth>.

ENDMETHOD.

Exception
Es una situación que ocurre durante la ejecución de un programa que interrumpe o cambia su normal comportamiento. La idea fundamental es que tales situaciones puedan ser manejadas de alguna forma. Las excepciones son representadas por una instancia de una clase “excepción”. Los atributos de tal objeto van a contener información acerca de la situación ocurrida.
TRY.
SENTENCIA_X.
CATCH cx_exc_1 INTO ref_exc_1.

CATCH cx_exc_2 INTO ref_exc_2.

CLEANUP.

ENDTRY.
Full transcript