Está en la página 1de 43

Coritel Spain Delivery Centre

ABAP Orientado a
Objetos
Introduccin a ABAP Objects

Abril 2007

Contenido
1) Comparacin breve Programacin Procedural vs.
Programacin Orientada a Objetos

2) Conceptos de Objeto y Clase

3) Qu es ABAP Objects? Comentarios breves ventajas de


usar ABAP Objects:
Consistencia
Encapsulacin
Herencia
Polimorfismo
Page 2 of 19

2005 Coritel. All rights reserved

Contenido

4) Introduccin a los nuevos tipos de datos usados en ABAP Objects


- Tipos de tablas

5) Principios de Objetos - Creacin de clases globales y locales


Transaccin se24
Ejemplos

Page 3 of 19

2005 Coritel. All rights reserved

Contenido
1) Comparacin breve Programacin Procedural vs.
Programacin Orientada a Objetos

2) Conceptos de Objeto y Clase

3) Qu es ABAP Objects? Comentarios breves ventajas de


usar ABAP Objects:
Consistencia
Encapsulacin
Herencia
Polimorfismo
Page 4 of 19

2005 Coritel. All rights reserved

1. Prog. Procedural vs. Prog.


Orientada a Objetos

ORIENTADA A OBJETOS

PROCEDURAL
Las funciones se definen
independientemente de
las estructuras de datos.

Agrupacin de datos y
funciones en clases.
Creacin de objetos
con las propiedades y
comportamientos
definidos en las clases.

Se accede de forma
directa a los datos.

Page 5 of 19

2005 Coritel. All rights reserved

1. Prog. Procedural vs. Prog.


Orientada a Objetos

Grupo de Funciones

Clases

Datos globales al grupo


de funciones
Mdulos de funciones

Page 6 of 19

Atributos

Mtodos

2005 Coritel. All rights reserved

Contenido
1) Comparacin breve Programacin Procedural vs.
Programacin Orientada a Objetos

2) Conceptos de Objeto y Clase

3) Qu es ABAP Objects? Comentarios breves ventajas de


usar ABAP Objects:
Consistencia
Encapsulacin
Herencia
Polimorfismo
Page 7 of 19

2005 Coritel. All rights reserved

2. Conceptos de Objeto y Clase


OBJETOS:
Son una abstraccin del mundo real.
Unidades compuestas de datos y funciones
pertenecientes a dichos datos.
Avin
Mtodo
Atributos

Page 8 of 19

Mtodo

2005 Coritel. All rights reserved

2. Conceptos de Objeto y Clase


CLASES
Entidad terica que describe el comportamiento
de un objeto.
Define:
Datos (atributos)
Servicios (mtodos)

ATRIBUTOS
METODOS

Page 9 of 19

clase _ avin
Nombre
Plazas
Subir_pasajeros
Despegar

2005 Coritel. All rights reserved

2. Conceptos de Objeto y Clase


Propiedades de los Objetos:
Encapsulacin
Objetos restringen la visibilidad de sus recursos
(mtodos y atributos) al resto de objetos.

Polimorfismo
Mtodos que se llaman igual pueden comportarse de
manera distinta en clases diferentes.

Herencia
Utilizacin de clases ya definidas para la creacin de
nuevas clases (Superclases y subclases)

Page 10 of 19

2005 Coritel. All rights reserved

Contenido
1) Comparacin breve Programacin Procedural vs.
Programacin Orientada a Objetos

2) Conceptos de Objeto y Clase

3) Qu es ABAP Objects? Comentarios breves ventajas de


usar ABAP Objects:
Consistencia
Encapsulacin
Herencia
Polimorfismo
Page 11 of 19

2005 Coritel. All rights reserved

3. ABAP Objects
Qu es ABAP Objects?
Extensin Compatible de ABAP
Las sentencias de ABAP objects se pueden usar
en los programas convencionales de ABAP, y
viceversa
ABAP objects no es un lenguaje nuevo, ha sido
desarrollado como una extensin de ABAP

Page 12 of 19

2005 Coritel. All rights reserved

3. ABAP Objects
Ventajas:
Consistencia durante el proceso de desarrollo

El lenguaje utilizado durante el proceso de desarrollo


es uniforme, lo ideal sera que las modificaciones
realizadas durante la fase de implementacin se
reflejarn directamente en el diseo

Encapsulacin

La implementacin de un objeto es oculta para los


dems objetos del sistema, as que no se pueden hacer
suposiciones sobre el estado interno de un objeto y por
lo tanto no surgen dependencias sobre las
implementaciones especificas

Page 13 of 19

2005 Coritel. All rights reserved

3. ABAP Objects
Ventajas:
Polimorfismo
Un objeto en diferentes clases puede tener
diferentes reacciones a un mismo mensaje

Herencia
Define la implementacin de la relacin entre
clases, en la cual una clase (la subclase) comparte
la estructura (atributos) y el comportamiento
(mtodos) definidos en una o ms clases
(superclases).
Nota: En ABAP solo est permitida la herencia simple
Page 14 of 19

2005 Coritel. All rights reserved

Contenido

4) Introduccin a los nuevos tipos de datos usados en ABAP Objects


- Tipos de tablas

5) Principios de Objetos - Creacin de clases globales y locales


Transaccin se24
Ejemplos

Page 15 of 19

2005 Coritel. All rights reserved

4. ABAP Objects - Tipo de tablas


Unin entre tipos de tablas y tipos de acceso

Page 16 of 19

2005 Coritel. All rights reserved

4. ABAP Objects - Tipo de tablas


Tipos de definicin para tablas internas

Page 17 of 19

2005 Coritel. All rights reserved

4. ABAP Objects - Tipo de tablas


Definicin del tipo de una tabla interna

Page 18 of 19

2005 Coritel. All rights reserved

4. ABAP Objects - Tipo de tablas


Atributo de la tabla: Tipo de tabla

Page 19 of 19

2005 Coritel. All rights reserved

4. ABAP Objects - Tipo de tablas


Atributo de la tabla: Tipo de lnea

Page 20 of 19

2005 Coritel. All rights reserved

4. ABAP Objects - Tipo de tablas


Ejemplo: STANDARD TABLE con tipo local

Page 21 of 19

2005 Coritel. All rights reserved

4. ABAP Objects - Tipo de tablas


Ejemplo: SORTED y HASHED TABLE

Page 22 of 19

2005 Coritel. All rights reserved

4. ABAP Objects - Tipo de tablas


Tipos de Operaciones

Page 23 of 19

2005 Coritel. All rights reserved

4. ABAP Objects - Tipo de tablas


Operaciones: INSERT

Page 24 of 19

2005 Coritel. All rights reserved

4. ABAP Objects - Tipo de tablas


Operaciones: READ de 1 nica entrada a un workarea usando el n de lnea

Page 25 of 19

2005 Coritel. All rights reserved

4. ABAP Objects - Tipo de tablas


Operaciones: READ de 1 nica entrada a un workarea usando el contenido del campo

Page 26 of 19

2005 Coritel. All rights reserved

4. ABAP Objects - Tipo de tablas


Operaciones: READ de 1 nica entrada usando un Field-Symbol

Page 27 of 19

2005 Coritel. All rights reserved

4. ABAP Objects - Tipo de tablas


Operaciones: MODIFY usando un workarea

Page 28 of 19

2005 Coritel. All rights reserved

4. ABAP Objects - Tipo de tablas


Operaciones: MODIFY de 1 nica entrada usando un Field-Symbol

Page 29 of 19

2005 Coritel. All rights reserved

4. ABAP Objects - Tipo de tablas


Operaciones: DELETE

Page 30 of 19

2005 Coritel. All rights reserved

4. ABAP Objects - Tipo de tablas


Operaciones: Proceso de un LOOP

Page 31 of 19

2005 Coritel. All rights reserved

4. ABAP Objects - Tipo de tablas


Operaciones: Overview

Page 32 of 19

2005 Coritel. All rights reserved

4. ABAP Objects - Tipo de tablas


Situaciones especiales: Tablas internas con cabecera

Page 33 of 19

2005 Coritel. All rights reserved

Contenido

4) Introduccin a los nuevos tipos de datos usados en ABAP Objects


- Tipos de tablas

5) Principios de Objetos - Creacin de clases globales y locales


Transaccin se24
Ejemplos

Page 34 of 19

2005 Coritel. All rights reserved

5. Principios: Objetos
Un objeto viene caracterizado por:
Identidad
Status

(Atributos)

Comportamiento

(Mtodos)

Identidad:
Cada objeto generado a partir de una clase tiene su propia
identidad (Cada objeto es UNICO).

Page 35 of 19

2005 Coritel. All rights reserved

5. Principios: Clases
Clases -> Plantillas para los objetos
Declaracin
CLASS <nombre_clase> DEFINITION.

En la definicin declaramos los


componentes de la clase:
Atributos
Eventos

ENDCLASS.

Mtodos

Implementacin
CLASS <nombre_clase> IMPLEMENTATION.

En la implementacin realizamos
la codificacin en s de los
mtodos (implementacin)

ENDCLASS.

Page 36 of 19

2005 Coritel. All rights reserved

5. Principios: Clases
Componentes de las Clases
Mtodos

Atributos
Son los datos en s y representan el
status del objeto.

Son los procedimientos internos de una


clase que definen el comportamiento del
objeto.
De Instancia:

De Instancia:

METHOD <nombre_metodo>.

DATA TYPE

ENDMETHOD.
Estticos:

Estticos:

CLASS-METHOD <nombre_metodo>.

CLASS-DATA TYPE

ENDMETHOD.
Constructor: CONSTRUCTOR.
Constructor de clase:
CLASS-CONSTRUCTOR
Page 37 of 19

2005 Coritel. All rights reserved

5. Principios: Clases
Visibilidad
La parte declarativa de una clase se divide en 3 reas:
CLASS <nombre_clase> DEFINITION.
PUBLIC SECTION: Todos los componentes son accesibles
para todos los usuarios de la clase y para todos los
mtodos de la clase y de cualquier clase que herede de
ella. INTERFAZ ENTRE USUARIO Y CLASE

PUBLIC SECTION.
DATA
METHODS
PRIVATE SECTION.

PRIVATE SECTION: Los componentes slo son visibles en


los mtodos de la misma clase. NO FORMAN PARTE DE
LA INTERFAZ EXTERNA DE LA CLASE

DATA
METHODS
PROTECTED SECTION.

PROTECTED SECTION: Los componentes slo son visibles


en los mtodos de la misma clase y de las subclases que
hereden de ella. INTERFAZ ENTRE CLASE Y SUBCLASES

DATA
METHODS
ENDCLASS.
Page 38 of 19

2005 Coritel. All rights reserved

5. Principios
Clases Globales y Locales
Las clases Globales se definen en el generador de clases en el ABAP
Workbench (SE24) y todos los programas ABAP pueden acceder a las
clases globales.

Las clases locales se definen en un programa ABAP y solo pueden ser


invocadas desde los programas en que se definen.
CLASS <classname> DEFINITION.

CLASS <classname> IMPLEMENTATION.

ENDCLASS.

ENDCLASS.
Page 39 of 19

2005 Coritel. All rights reserved

5. Principios
Atributos: Declaracin

CLASS zcl_ejemplo DEFINITION.


CONSTANTS:
c_fijo TYPE P VALUE 1.
DATA:
p_parametro TYPE p,
p_resultado TYPE p READ-ONLY.
ENDCLASS.

Page 40 of 19

2005 Coritel. All rights reserved

5. Principios
Mtodos: Declaracin
CLASS zcl_ejemplo DEFINITION.
METHODS:
ME_NUMERO_ALEATORIO
[ IMPORTING i_parameter TYPE
EXPORTING e_parameter TYPE
CHANGING c_parameter TYPE
RETURNING VALUE r_parameter TYPE
EXCEPTIONS cx_exception],
ME_OBTENER_INVERSO
[ ].
ENDCLASS.

CLASS zcl_ejemplo IMPLEMENTATION.


METHOD ME_NUMERO_ALEATORIO.

ENDMETHOD.
METHOD ME_OBTENER_INVERSO.
.
ENDMETHOD.
ENDCLASS.
Page 41 of 19

2005 Coritel. All rights reserved

5. Principios
Objetos: Creacin
Antes de crear un objeto de una clase es necesario declarar
una variable de referencia:
DATA: <var_referencia> TYPE REF TO <nombre_clase>.
DATA: l_ref_zcl_ejemplo TYPE REF TO zcl_ejemplo.

Una vez declarada la variable, el objeto se crea con la


sentencia:

CREATE OBJECT <var_referencia>.


CREATE OBJECT l_ref_zcl_ejemplo.

Page 42 of 19

2005 Coritel. All rights reserved

5. Principios
Objetos: Acceso a componentes
Los programas slo pueden acceder a los componentes de las instancias
usando las referencias de las variables referenciadas:
var_referencia->ATRIBUTO
CALL METHOD var_referencia->MTODO
Para los componentes estticos se pueden usar tanto el nombre de la clase
como la variable de referencia:
nombre_clase=>ATRIBUTO
CALL METHOD nombre_clase=>MTODO
Dentro de una clase se puede acceder tambin a los componentes
individuales mediante la referencia a s misma ME:
ME->ATRIBUTO
ME->MTODO
Page 43 of 19

2005 Coritel. All rights reserved

También podría gustarte