![](/cvo_files/imgs_sap_abap/logos/logo_cvo_academy_it.png)
✒️ABAP Las propiedades de la programación orientada a objetos
ABAP Las propiedades de la programación orientada a objetos
![ABAP Las propiedades de la programación orientada a objetos ABAP Las propiedades de la programación orientada a objetos](https://www.cvosoft.com/cvo_files/imgs_sap_abap/og-images/375.jpg)
Propiedades de la programación Orientada a Objetos.
1.-Las propiedades de la POO.
Existen tres propiedades fundamentales que presentan los objetos.
- Encapsulación.
- Herencia.
- Polimorfismo.
2.-Encapsulación.
También conocido como “ocultamiento”, se refiere a que todos los objetos restringen la visibilidad de sus recursos,(atributos y métodos) al resto de los usuarios.
Las tres áreas de visibilidad(pública, privada y protegida) son la base de la encapsulación.
Cada objeto posee una interface que determina la manera de interactuar con él.
CLASS c1 DEFINITION.
PUBLIC SECTION.
DATA:
METHODS:
EVENTS:
PROTECTED SECTION.
DATA:
METHODS:
EVENTS:
PRIVATE SECTION.
DATA:
METHODS:
EVENTS:
Los componentes públicos de las clases globales no pueden ser cambiados una vez que se la liberado la clase.
Si se quiere encapsular el estado de un objeto completamente no se tiene que declarar ningún atributo público. Además de la visibilidad, se puede proteger también usando la adición READ-ONLY.
3.-Herencia.
Es la capacidad que tiene una clase de heredar las propiedades y métodos de otra clase.
La herencia permite crear una nueva clase a partir de una existente, heredando sus propiedades. Esto se realiza añadiendo INHERITING FROM a la sentencia de definición de la clase:
CLASS <subclass> DEFINITION INHERITING FROM <superclass>.
La clase original se conoce como la superclase de la nueva clase.
Si no se añade ninguna declaración a la subclase, esta contiene los mismos componentes que la superclase. De todos modos, sólo los componentes públicos y protegidos de la superclase son visibles a la subclase. Los componentes privados aunque existen en la subclase, no son visibles.
Se pueden declarar componentes privados en una subclase que tengan los mismos nombres que componentes privados de la superclase. Los métodos que una subclase hereda de una superclase usan los atributos privados de la superclase y no ningún componente privado de la subclase con el mismo nombre.
CLASS vehiculo DEFINITION.
PUBLIC SECTION.
METHODS: aumentar_velocidad,
Disminuir_velocidad.
PROTECTED SECTION.
DATA km TYPE i.
ENDCLASS.
CLASS vehiculo IMPLEMENTACION.
METHOD aumentar_velocidad.
ADD 10 to km.
ENDMETHOD.
METHOD disminuir_velocidad.
SUBSTRACT 10 FRIM km.
ENDMETHOD.
ENDCLASS.
CLASS bicicleta DEFINITION INHERITING FROM vehiculo.
PUBLIC SECTION.
DATA desgaste_camara(5) TYPE c.
ENDCLASS.
Existen dos tipos de herencia:
Simple, una clase puede tener más de una subclase, de las cuales es superclase, pero esta solo puede tener una superclase.
Múltiple, una clase hereda de varias superclases.
Cuando una subclase hereda de una superclase que a su vez hereda de otra superclase, se forma una estructura de árbol en la cual el grado de especialización aumenta con cada nivel jerárquico que se añada.
NOTA: El nodo raíz de todos los arboles de herencia en los objetos ABAP es la clase predefinida vacía OBJECT.(No contiene atributos ni métodos)
Cuando se define una nueva clase, no se tiene que especificar explícitamente esta clase como superclase, esta relación está definida implícitamente.
NOTA: Las adiciones ABSTRACT y FINAL en la sentencia METHODS y CLASS permiten definir métodos Abstractos y Finales.
Un método abstracto se define en una clase abstracta y no puede ser implementado en esa clase, tiene que ser implementado en una subclase de la clase. Las clases Abstractas no pueden ser instanciadas.
Un método final no puede ser redefinido en una subclase, la clases finales no pueden tener subclases.
4.-Polimorfismo.
Significa que métodos que se llaman exactamente igual pueden comportase de manera distinta en clases diferentes.
También se lo conoce como REDEFINICION.
Consiste en conseguir que un objeto de una clase se comporte como un objeto cualquiera de sus subclases, dependiendo de la forma de llamar a los métodos de dicha clase o subclases.
Todas las subclases contienen los componentes de todas las clases existentes entre ellas mismas y el nodo raíz del árbol de herencia. La visibilidad de un componente no puede ser cambiada nunca.
En cambio se puede usar la adición REDEFINITION en la sentencia METHODS para redefinir un método público o protegido dependiente de instancia en una subclase y hacer que realice una función más especializada.
CLASS counter DEFINITION.
PUBLIC SECTION.
METHODS: set IMPORTING value(set_value) TYPE i,
increment,
get EXPORTING value(get_value) TYPE i.
PROTECTED SECTION.
DATA count TYPE i.
ENDCLASS.
CLASS counter IMPLEMENTATION.
 
 
 
Agradecimiento:
Ha agradecido este aporte: Francisco Ortega Aguilar
Favorito:
Está publicación ha sido agregada a sus favoritos por: Francisco Ortega Aguilar
Sobre el autor
Publicación académica de Juan Hernández, en su ámbito de estudios para la Carrera Consultor ABAP.
Juan Hernández
Profesión: Programador Informático - España - Legajo: XQ15K
✒️Autor de: 125 Publicaciones Académicas
🎓Egresado de los módulos:
Disponibilidad Laboral: PartTime