Resumen Academia Abap

12
RESUMEN ACADEMIA ABAP TAW10_1 FUNDAMENTOS ABAP TAW10_2 PANTALLAS

Transcript of Resumen Academia Abap

Page 1: Resumen Academia Abap

RESUMEN ACADEMIA ABAP

TAW10_1

FUNDAMENTOS ABAP

TAW10_2

PANTALLAS

Page 2: Resumen Academia Abap

TAW12_1

PROGRAMACION ORIENTADA A OBJETOS

CAPITULO 1. Introducción a la Programación Orientada a Objetos.

Programación Procedimental: Los datos y las funciones están separados. No hay protección para los objetos de datos globales. Se puede acceder a todas las variables en cualquier momento.

Programación Orientada a Objetos: Es un paradigma de programación que usa los objetos en sus interacciones, para diseñar programas informáticos. Está basado en varias técnicas, incluyendo encapsulamiento, herencia, abstracción y polimorfismo.

Objetos ABAP: Son una extensión sistemática de ABAP que contiene los mismos conceptos que otros lenguajes de POO como Java, C++, etc. Hay un pequeño número de conceptos POO que no demostraron ser eficaces en objetos ABAP y no se incluyeron. También en Objetos ABAP hay elementos lingüísticos útiles que no ofrecen C++ y JAVA.Ventajas de POO vs Procedimental: Consistencia de software, mantenimiento reducido a software.El proceso de desarrollo de software en PPO es de 4 pasos: Necesidad o idea; Análisis y diseño (UML); Implementación (Objetos ABAP) y Pruebas.

Objeto: Es la instancia de una clase. Son una abstracción directa del mundo real. Son entidades que tienen un conjunto determinado propiedades (atributos o estados), comportamiento (método o funcionalidad) e identidad. Cada objeto ofrece exactamente los servicios que están en su área de responsabilidad. Componentes de un objeto: atributos, métodos, identidad y relaciones.Si un objeto necesita otros servicios, los solicita a otros objetos. Esto es el principio de delegación.

Clase: Descripción técnica y general de una cantidad de objetos idénticos (están tipificados mediante las mismas características y el mismo comportamiento). Puede contener Atributos y Metodos.

Atributos : Las características que describen a la clase. Describen o contienen los datos que pueden almacenarse en los objetos de una clase y determinan el estatus de un objeto.

Funciones : Como funciona la clase, sus métodos de trabajo, sus servicios.Una clase es una plantilla o un prototipo para crear objetos, por eso se dice que los objetos son instancias de clases.Una clase contiene la descripción genérica de un objeto y describe todas las características que tienen en común todos los objetos de la clase.Encapsulación de datos y funciones OCULTAMIENTO/ABSTRACCION: No hay acceso directo a los objetos, funciones, atributos.Es el registro de datos y funciones en unidades reutilizables y no se puede acceder a los datos directamente.Instancia:Instanciación: Crear varios objetos a partir de una Clase. Durante el tiempo de ejecución del programa, la clase se utiliza para crear objetos discretos (instancias) en la memoria.

Conceptos adicionales del modelo de POO:

Page 3: Resumen Academia Abap

Herencia : define las relaciones de implementación entre clases, de manera que una clase (subclase) adopta (hereda) los atributos y métodos de otra clase (superclase) declarados en la sección publica. Los componentes registrados en la sección privada también se heredan, pero como no pertenecen a la clase, se mantienen escondidos y solo pueden ser accedidos a través de métodos públicos.

Polimorfismo ; Cuando instancias de diferentes clases responden de manera distinta a los mismos mensajes. comportamientos diferentes, asociados a objetos distintos, pueden compartir el mismo nombre

Control de eventos : Recolección de basura : técnica por la cual el entorno de objetos se encarga de

destruir automáticamente, y por tanto desvincular la memoria asociada, los objetos que hayan quedado sin ninguna referencia a ellos.

La identidad es un atributo que distingue cada objeto de entre el resto de los objetos de su clase.

Un diagrama de clases describe todas las relaciones estáticas entre clases. Dos formas básicas de relaciones estáticas son: Asociación y Generalización/especialización.ASOCIACION: describe una relación semántica entre clases. La relación específica entre objetos de estas clases se conoce como un enlace de objetos, por lo tanto los enlaces de objetos son instancias de asociación.Una asociación suele ser una relación entre diferentes clases pero puede haber asociaciones recursivas o sea, la clases tiene una relación con ella misma.Las asociaciones recursivas se utilizan para enlazar dos objetos diferentes en una clase (Empresa—jefe/empleado).Cada asociación tiene dos roles, cada rol tiene una cardinalidad (también llamada multiciplidad) que muestra cuantas instancias pueden participar de esta relación.Cardinalidad o multiciplidad es el número de objetos participantes en una clase que tienen relación con un objeto de la otra clase.La agregación y la Composición son especialización de asociación. Indican que un objeto esta formado por otros objetos o contienen otros objetos.Agregación: Una relación de parte total (obligatorio). “consiste de …” rombo vacío. Las 4 llantas pueden estar asociadas al vehículo.Composición (segregación): caso especial de agregación, Una relación de parte total dependiente de la existencia (no obligatorio). “es una parte de …”. Significa que el objeto contenido no puede existir sin el agregado, por lo tanto la cardinalidad del agregado solo puede ser exactamente una. Las partes se crean con o después del agregado y se destruyen con el agregado o antes del agregado. Rombo lleno.GENERALIZACION/ESPECIALIZACION: Están siempre relacionadas, son bidireccionales. El nivel de generalización aumenta en la dirección de la flecha (apuntando a la clase mas general –arriba-).

Los componentes de una clase son atributos, métodos, eventos, constantes, tipos e interfaces implementados.

SINTAXIS PARA CLASE:CLASS xcl_yyyy DEFINITION. PUBLIC SECTION. … PRIVATE SECTION.

Page 4: Resumen Academia Abap

….ENDCLASS.

CLASS xcl_yyyy IMPLEMENTATION. PUBLIC SECTION. … PRIVATE SECTION. …ENDCLASS.

La sentencia CLASS no puede anidarse.Los componentes de una clase son atributos, métodos, eventos, constantes, tipos e interfaces implementados.La visibilidad tiene tres secciones (pública, xxxxx y privada)SINTAXIS PARA ATRIBUTOS, TIPOS Y CONSTANTES DENTRO DE LAS CLASES:Se ponen dentro del área de DEFINITION, ninguno en IMPLEMENTATION.CLASS xcl_yyyy DEFINITION.

TYPES: …… .CONSTANTS: …… .

DATA: var1 TYPE local_type,var2 TYPE global_type,var3 LIKE variable1,

var4 TYPE built_in_type VALUE val,var5 TYPE …. READ-ONLY,

var6 TYPE REF TO class_name,var7 TYPE REF TO interface_name,var8 TYPE REF TO type_name.

ENDCLASS.

TYPE.- solo para referencia a tipos de datos (data-element, structure, tables).LIKE.- esta permitida para objetos de datos locales o campos SY (DATE, UNAME, ).READ-ONLY.- Solo se puede utilizar en PUBLIC SECTION. Significa que un atributo fue declarado público y con DATA para ser leído desde el exterior, pero solo puede modificarse por métodos de la misma clase.TYPE REF TO.- estas variables de referencia hacen referencia a clases, interfaces o tipos.

Los atributos pueden estar en la sección pública o privada.Atributos en sección pública: visibles y modificables en general.Atributos en sección privada: visibles y modificables SOLO dentro de la clase. No visibles y modificables desde el exterior.

La sección privada también se conoce como supresión de información o encapsulación.Los componentes públicos de una clase se conocen a veces de manera colectiva como interface de la clase.Atributos de Instancia (su comando es DATA ): Existen una vez por objeto, es decir una vez por instancia de tiempo de ejecución de la clase.

Page 5: Resumen Academia Abap

Atributos estáticos (su comando es CLASS-DATA ) : Existen una vez para cada clase y son visibles para todas las instancias de tiempo de ejecución de esta clase. Suelen contener información que se refiere a todas las instancias. También se conoce como atributo de clase.SINTAXIS PARA METODOS:CLASS xcl_yyyy DEFINITION.

METHODS zzzzzzIMPORTING im_pa TYPE type_nameEXPORTING

firma CHANGINGRETURNING value(re_par) EXCEPTIONS rrrrrr o RAISING exception_class.

CLASS xcl_yyyy IMPLEMENTATION.METHOD zzzzzz.

Ejecución del método .ENDMETHOD.

La implementación de los métodos son procesos internos en clases que determinan el comportamiento de los objetos. Pueden tener acceso a todos los atributos de su clase. Los métodos tienen firma (parámetros y excepciones de interface) que les permite recibir y devolver valores al programa de llamada. Los parámetros (imp, exp, chang) pueden ser transmitidos por valor o referencia.Con el parámetro RETURN, no se pueden definir los parámetros EXPORTING y CHANGING.Con el suplemento OPTIONAL, el parámetro permanecerá inicializado según el tipo.Con el suplemento DEFAULT permite introducir un valor de inicio.El parámetro EXCEPTIONS es para utilizarlo con SY-SUBRC.SY-SUBRC es un código de retorno para …..Los métodos públicos pueden llamarse desde el exterior.Los métodos privados solo pueden llamarse desde dentro de la clase. Un método privado puede ser llamado por un método público desde el área IMPLEMENTATION.

Los METODOS DE INSTANCIA pueden acceder a los componentes estáticos como a los de instancia, (su comando es METHODS).

Los METODOS ESTATICOS solo pueden acceder a los componentes estáticos, y se definen a nivel de clase (su comando es CLASS-METHODS), no necesitan instancias. También se conocen como métodos de clase.

Notación UML: + significa publico, - significa privado, ___ significa estáticos (class).

Un objeto debe de tener al menos una referencia para acceder al objeto.El recolector de basura (Garbage Collector) es una rutina de sistema que se inicia automáticamente para borrar todos los objetos que ya no tienen referencias que les apunten.Puede utilizar la consulta lógica IF r_obj IS INITIAL para saber si el objeto contiene la referencia cero.El comando CREATE OBJECT crea UN objeto en la memoria. Sus valores de atributo son o bien iniciales o se asignan de acuerdo a la especificación de VALUE.Una variable de referencia es …. .Las variables de referencia también pueden asignarse unas a otras.El comando TYPE REF TO es para …..

Page 6: Resumen Academia Abap

Una referencia es…….Para mantener varios objetos de la misma clase en el programa (admon de referencia con instanciación múltiple), hay que definir una tabla interna (itab) que contenga una columna con las referencias de objeto para esta clase.

Instanciación múltiple: Es crear y gestionar cualquier numero de instancias en tiempo de ejecución en un espacio para cada contexto de programa. Permite crear una abstracción directa de un objeto real.Método es cuando un objeto que requiere los servicios de otro objeto, envía un mensaje al objeto que ofrece los servicios, este mensaje nombre la operación a ejecutar. También método se puede utilizar como sinónimo de operación y mensaje. Por lo tanto el comportamiento de un objeto viene determinado por su método. La firma del método también puede utilizarse para intercambio de valores. Son para explotar o guardar datos.

La sintaxis para llamada de METODO DE INSTANCIA (->) es:

Declaro objeto y tabla interna

Creo los objetos

Recupero UNO

Recupero varios

Page 7: Resumen Academia Abap

La sintaxis para llamada de METODO ESTATICO (=>) es:

Como los atributos estáticos, los métodos estáticos se llaman por su nombre de clase, ya que no necesitan instancias.

Métodos funcionales: son especiales, siempre utilizan el parámetro RETURNING, Importing o Exception y debe transmitirse mediante el suplemento VALUE, no pueden tener parámetros EXPORTING, CHANGING. Solo pueden recibir datos

Acceso a atributos públicos: en la medida de lo posible, los atributos deben de ser privados. Son para consulta. Para acceder a atributos públicos desde fuera de la clase, es de la misma manera que las llamadas de métodos. Se accede a los atributos estáticos con classname=>static_attribute.Se accede a los atributos de instancia con ref->instance_attribute.Ejemplos:

Page 8: Resumen Academia Abap

Constructores de Clase: son métodos especiales, siempre públicos y se llaman en cuanto el objeto de esa clase ha sido generado en la memoria, cuando defino una clase no siempre debo de definir constructor. hay dos tipos y son de instancia y estáticos, se llaman de forma implícita y sirven para pasar datos –atributos-.

Sintaxis de Constructor de instancia: CREATE OBJECT ref EXPORTING …… EXCEPTION……. .Tener en cuenta:

Cada clase puede tener como máximo un constructor. Debe definirse en el área pública. La firma solo puede tener parámetros de importación (EXPORTING) y excepciones. Si se emiten excepciones en el constructor, no se crearan instancias.

Los Constructores son necesarios si después de la instanciación de una clase: Se deben asignar recursos. Se deben modificar atributos estáticos. Se deben enviar mensajes que contenga la información de que se ha creado un nuevo objeto. Se deben inicializar atributos que no se cubren con el suplemento VALUE en el comando DATA.

Se conoce simplemente como Constructor.

Sintaxis de Constructor Estático: CLASS_CONSTRUCTOR

Page 9: Resumen Academia Abap

Es un método estático especial en una clase, se ejecuta una vez como máximo por programa (y clase). Funciona cuando se accede a la clase por primera vez durante la ejecución del sistema (la primera vez que uso un elemento o método de la clase). No tiene parámetros o excepciones, llega antes que el Constructor

Autoreferencia.- necesario cuando se desea indicar una distinción entre objetos de datos locales y atributos de instancia con el MISMO NOMBRE.Cuando se llama un método externo, un objeto de cliente debe exportar una referencia a si mismo. Cuando el atributo y la variable se necesitan llamar igual.Es posible dirigirse a un objeto en si mediante la variable de referencia predefinida dentro de los métodos de instancia.Sintaxis: me->atributo(make) = variable(make)

Solo existe en métodos de instancia?

Page 10: Resumen Academia Abap

CAPITULO 2. Conceptos orientados a objetos y técnicas de programación.

CAPITULO 3. Objetos de Repository orientados a objetos.

CAPITULO 4. El concepto de la excepción basada en clase.

CAPITULO 5. Objetos compartidos.

CAPITULO 6. Programación dinámica.

TAW12_2

ENHANCEMENT Y WEB DYNPROS