🚀PROMO #PLANCARRERA2024 - 🔥Bonificaciones, Precios Congelados y Cuotas

 X 

✒️ABAP POO Friends

ABAP POO Friends

ABAP POO Friends

U2-L8

Uso de adición FRIENDS y como se implementa.

Adición que se agrega a una clase para permitir que otra clase pueda acceder a sus componentes protegidos y privados.
La adición se agrega en la clase cuyos atributos necesitan ser accedidos.
CLASS lcl_class1 DEFINITION FRIENDS lcl_class2.
...
..
ENDCLASS.

En el siguiente ej;
La clase local LCL_FRIEND denominada 'amiga' podrá acceder a los componentes de la clase local LCL_ME:
CLASS lcl_me DEFINITION FRIENDS lcl_friend.
PRIVATE SECTION.
DATA: a1 TYPE string VALUE 'Soy A1 de la clase LCL_ME'.
ENDCLASS.

El método ACCESS_A1_OF_CLASS1 de clase LCL_FRIEND accederá a componentes privados de LCL_ME.
CLASS lcl_friend DEFINITION.
PUBLIC SECTION.
METHODS: access_a1_of_class1.
ENDCLASS.

CLASS lcl_me DEFINITION FRIENDS lcl_friend.
PRIVATE SECTION.
DATA: a1 TYPE string VALUE 'Soy A1 de la clase LCL_ME'.
ENDCLASS.

CLASS lcl_friend IMPLEMENTATION.
METHOD access_a1_of_class1.
DATA: lo_class1 TYPE REF TO lcl_me.
CREATE OBJETCT lo_class1. "Instancia lcl_me
WRITE: / lo_class1->a1. "acceso atrib priv de lcl_me
ENDMETHOD.
ENDCLASS.

START-OF-SELECTION.
DATA: lo_friend TYPE REF TO lcl_friend.
CREATE OBJECT lo_friend.
lo_friend->access_a1_class1( ).

Se puede identificar una interface como 'amiga' de claseA. Esto permitirá que todas las clases que implementen la interface, tendrán acceso a la claseA.
INTERFACE lif_friend.
METHODS: access_a1_of_class1.
ENDINTERFACE.

CLASS lcl_friend DEFINITION.
PUBLIC SECTION.
INTERFACES: lif_friend.
ENDCLASS.

CLASS lcl_friend_2 DEFINITION.
PUBLIC SECTION.
INTERFACES: lif_friend.
ENDCLASS.

CLASS lcl_me DEFINITION FRIENDS lif_friend.
PRIVATE SECTION.
DATA: a1 TYPE string VALUE 'Soy A1 de la clase LCL_ME'.
ENDCLASS.

El método ACCESS_A1_OF_CLASS1 de LIF_FRIEND(interface amiga) accede a atributos privados de LCL_ME(clase amiga) desde cualquier clase donde se implemente la interface.
CLASS lcl_friend IMPLEMENTATION.
METHOD lif_friend~access_a1_of_class1.
DATA: lo_class1 TYPE REF TO lcl_me.
CREATE OBJECT lo_class1.
WRITE: / 'Accedemos a A1 desde la clase LCL_FRIEND a través de LIF_FRIEND'.
WRITE: / lo_class1->a1.
ENDMETHOD.
ENDCLASS.

CLASS lcl_friend_2 IMPLEMENTATION.
METHOD lif_friend~access_a1_of_class1.
DATA: lo_class1 TYPE REF TO lcl_me.
CREATE OBJECT lo_class1.
WRITE: / 'Accedemos a A1 desde la clase LCL_FRIEND_2 a través de LIF_FRIEND'.
WRITE: / lo_class1->a1.
ENDMETHOD.
ENDCLASS.

START-OF-SELECTION.
"Acceso a través de FRIEND
DATA: lo_friend TYPE REF TO lif_friend.
CREATE OBJECT lo_friend TYPE lcl_friend.
lo_friend->access_a1_of_class( ).
"Acceso a través de FIEND_2
CREATE OBJECT lo_friend TYPE lcl_friend_2.
lo_friend->access_a1_of_class1( ).

Las subclases de la clase LCL_ME no son amigas, es decir no heredan la adición FRIENDS de su superclase.


 

 

 


Sobre el autor

Publicación académica de Denisse Adriana Hernandez Trujillo, en su ámbito de estudios para el Máster ABAP POO.

SAP Master

Denisse Adriana Hernandez Trujillo

Mexico - Legajo: AH80E

✒️Autor de: 71 Publicaciones Académicas

🎓Egresado de los módulos:

Certificación Académica de Denisse Hernandez

✒️+Comunidad Académica CVOSOFT

Continúe aprendiendo sobre el tema "Friends" de la mano de nuestros alumnos.

SAP Expert


Friends: es una adición que se agrega a una clase para que otra clase pueda acceder a sus componentes protegidos y privados. Se define mediante CLASS DEFINITION FRIENDS - ENDCLASS.

Acceder a esta publicación

Creado y Compartido por: Daniel Alejandro Monteros Segura

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

FRIENDS adicion que se agrega en una clase para permitir que otra clase pueda acceder a sus componetes protegidos o privados. CLASS lcl_class1 DEFINITION FRIENDS lcl_class2 ... ... ENDCLASS.

Acceder a esta publicación

Creado y Compartido por: Juan Jose Pujol Diaz

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Expert


Friends: Adición que se agrega en una clase para permitir que otra clase pueda acceder a sus componentes protegidos y privados. ¿Para qué se utiliza? A veces es ventajoso dar acceso a los atributos protegidos y privados de otra clase a través de la adición Friends. Esta adición se debe agregar en la clase cuyos atributos necesitan ser accedidos. Nomenclatura: CLASS lcl_class1 DEFINITION FRIENDS lcl_class2. … ENDCLASS. También podemos especificar una interface como “Amiga” de una clase. Si se hace esto, todas las clases que implemente la interface tendrán el acceso garantizado a la clase. CLASS lcl_me DEFINITION FRIENDS lif_friend. END CLASS.

Acceder a esta publicación

Creado y Compartido por: Luis Alfredo Lombardi Pizarro

 


 

👌Genial!, estos fueron los últimos artículos sobre más de 79.000 publicaciones académicas abiertas, libres y gratuitas compartidas con la comunidad, para acceder a ellas le dejamos el enlace a CVOPEN ACADEMY.

Buscador de Publicaciones:

 


 

No sea Juan... Solo podrá llegar alto si realiza su formación con los mejores!