✒️ABAP POO Friends
ABAP POO Friends
FRIENDS – LECCION 2-8
¿PARA QUE SE UTILIZA LA ADICION FRIENDS Y COMO SE IMPLEMENTA?
En cualquier lenguaje de programación orientado a objeto el acceso a los componentes privados y protegidos, ya sea a los atributos o a los métodos, se encuentra prohibido
Si alguien trata de acceder a ellos, el compilador generara un error de sintaxis
A veces, puede ser ventajoso dar acceso a los atributos protegidos y privados de otra clase. Esto puede lograrse utlizando la adicion FRIENDS
FRIENDS, adicion que se agrega en una clase para permitir que otra clase pueda acceder a sus componentes protegidos y privados
Esta adicion se debe agregar en la clase cuyo atributo necesitan ser accedidos
La nomenclatura para establecer la relación de AMISTAD entre clases es la siguiente
Por ejemplo, si declaramos la clase local LCL_ME y deseamos que otra clase local LCL_FRIEND denominada “amiga” pueda acceder a los componentes de LCL_ME deberíamos escribir la siguiente definición
Veamos un ejemplo simple de como definimos la clase LCL_FRIEND y la clase LCL_ME (amiga de LCL_FRIEND), de modo que el método ACCESS_A1_OF_CLASS1 acceda a los componentes privados de la clase LCL_ME gracias a la relación de amistad entre clases:
Y la salida por pantalla de la ejecución de este programa será la siguiente
Gracias a este ejemplo, podemos comprobar que la LCL_FRIEND tiene el acceso totalmente permitido a los componentes de la clase LCL_ME
También podemos especificar una interface como “amiga” de una clase. Si hacemos esto entonces todas las clases que implementen la interface LIF_FRIEND tendrán el acceso garantizado a la clase
A continuación, vamos a implementar el método ACCESS_A1_OF_CLASS1 perteneciente a la interface LIF_FRIEND, en las clases locales LCL_FRIEND y LCL_FRIEND_2
Para probar la relación de amistad con la interface, dentro del evento START-OF-SELECTION creamos dos instancias, una de la clase LCL_FRIEND y otra de la clase LCL_FRIEND_2 y para ambas ejecutamos el método ACCESS_A1_OF_CLASS1.
Y la salida por pantalla de la ejecución de este programa será la siguiente
NOTA, las subclases de la clase local LCL_ME no son amigos, es decir no heredan la adición FRIENDS de su superclase
 
 
 
Sobre el autor
Publicación académica de Cristian Darwin Arteaga Diaz, en su ámbito de estudios para el Máster ABAP POO.
Cristian Darwin Arteaga Diaz
Profesión: Abap Developer - Argentina - Legajo: GP81Q
✒️Autor de: 165 Publicaciones Académicas
🎓Cursando Actualmente: Master Funcional para Consultores ABAP
🎓Egresado de los módulos:
- Máster ABAP Orientado a Objetos
- Carrera Consultor ABAP Nivel Avanzado
- Carrera Consultor ABAP Nivel Inicial
Disponibilidad Laboral: FullTime
Presentación:
Me considero una persona responsable, siempre estoy investigando y capacitandome para adquirir nuevos conocimientos, tengo el gusto de iniciarme en el mundo de abap como desarrollador, es genial.
Certificación Académica de Cristian Arteaga