Get Example source ABAP code based on a different SAP table
ABAP_OBJ - Visibility Sections in Classes The declaration part> of a class can be split into up to four different visibility sections. These sections define the external visibility of the class components> and therefore the interfaces of the class for all users allowed by the package concept>. Each component of a class must be explicitly assigned to one of the visibility sections. Only the friends> of a class are not affected by the associated restrictions.
Public visibility section> All components declared in the public visibility section defined using PUBLIC SECTION>> are accessible to all users as well as in the methods of all inheritors and the class itself. The public components are the interface of the class and for all its users.
Protected visibility section> All components declared in the protected visibility section defined using PROTECTED SECTION>> are accessible in the methods of all inheritors and in the class itself. Protected components are a special interface of the class and its subclasses.
Private visibility section> All components declared in the private visibility section defined using PRIVATE SECTION>> are only accessible in the methods of the class itself and are also not visible to the inheritors. The private components are therefore not an interface to the users of the class. The following table summarizes the visibilities of a class: Visible for>PUBLIC SECTION>PROTECTED SECTION> PRIVATE SECTION> Same class and its friendsXXX Any subclassesXX- Any repository objectsX--
Latest notes: A subclass can generally never access the protected components of a subclass of a different branch in the inheritance hierarchy, even if they are inherited from a common superclass. This rule can only be lifted by a friendship. NON_V5_HINTS ABAP_HINT_END
Encapsulation The three visibility sections form the basis for the important feature of encapsulation in ABAP Objects. When declaring a class, as few components as possible should be declared in the public section and these public components must be carefully designed. For global classes, they cannot be changed once the class has been released.
ABAP_PGL Exploit the options of encapsulation> ABAP_PGL_END
Latest notes: The class is the smallest encapsulation unit in ABAP Objects. A method can therefore use all components of all instances of the same class, except for the components of its own class. An exception to this rule are subclasses that cannot access the private components of superclasses if they are not their friends>. NON_V5_HINTS ABAP_HINT_END
ABAP_EXAMPLE_VX5 In the method m1> of the class c1>, reference variables of static type c1> can be used to access the protected attribute a11> and the private attribute a12> of any objects of c1>. In the method m2> of the subclass c2>, reference variables of static type c1> or c2> can similarly be used to access the protected attribute a11>. It is not possible to access the private attribute of the superclass with either reference variable. ABEXA 00856 ABAP_EXAMPLE_END