- SAP ABAP - Web Dynpro
- SAP ABAP - Business Add-Ins
- SAP ABAP - User Exits
- SAP ABAP - Customer Exits
- SAP ABAP - SAPscripts
- SAP ABAP - Smart Forms
- SAP ABAP - Dialog Programming
- SAP ABAP - Report Programming
- SAP ABAP - Object Events
- SAP ABAP - Interfaces
- SAP ABAP - Encapsulation
- SAP ABAP - Polymorphism
- SAP ABAP - Inheritance
- SAP ABAP - Classes
- SAP ABAP - Objects
- SAP ABAP - Object Orientation
- SAP ABAP - Deleting Internal Tables
- SAP ABAP - Reading Internal Tables
- SAP ABAP - Copying Internal Tables
- ABAP - Populating Internal Tables
- SAP ABAP - Creating Internal Tables
- SAP ABAP - Internal Tables
- SAP ABAP - Native SQL Overview
- SAP ABAP - Open SQL Overview
- SAP ABAP - Include Programs
- SAP ABAP - Function Modules
- SAP ABAP - Macros
- SAP ABAP - Subroutines
- SAP ABAP - Modularization
- SAP ABAP - Lock Objects
- SAP ABAP - Search Help
- SAP ABAP - Views
- SAP ABAP - Structures
- SAP ABAP - Tables
- SAP ABAP - Data Elements
- SAP ABAP - Domains
- SAP ABAP - Dictionary
- SAP ABAP - Exception Handling
- SAP ABAP - Formatting Data
- SAP ABAP - Date & Time
- SAP ABAP - Strings
- SAP ABAP - Decisions
- SAP ABAP - Loop Control
- SAP ABAP - Operators
- SAP ABAP - Constants & Literals
- SAP ABAP - Variables
- SAP ABAP - Data Types
- SAP ABAP - Basic Syntax
- SAP ABAP - Screen Navigation
- SAP ABAP - Environment
- SAP ABAP - Overview
- SAP ABAP - Home
SAP ABAP Useful Resources
- SAP ABAP - Discussion
- SAP ABAP - Useful Resources
- SAP ABAP - Quick Guide
- SAP ABAP - Questions Answers
Selected Reading
- Who is Who
- Computer Glossary
- HR Interview Questions
- Effective Resume Writing
- Questions and Answers
- UPSC IAS Exams Notes
SAP ABAP - Encapsulation
Encapsulation is an Object Oriented Programming (OOP) concept that binds together data and functions that manipulate the data, and keeps both safe from outside interference and misuse. Data encapsulation led to the important OOP concept of data hiding. Encapsulation is a mechanism of bundpng the data and the functions that use them, and data abstraction is a mechanism of exposing only the interfaces and hiding the implementation details from the user.
ABAP supports the properties of encapsulation and data hiding through the creation of user-defined types called classes. As discussed earper, a class can contain private, protected and pubpc members. By default, all items defined in a class are private.
Encapsulation by Interface
Encapsulation actually means one attribute and method could be modified in different classes. Hence data and method can have different form and logic that can be hidden to separate class.
Let s consider encapsulation by interface. Interface is used when we need to create one method with different functionapty in different classes. Here the name of the method need not be changed. The same method will have to be implemented in different class implementations.
Example
The following program contains an Interface inter_1. We have declared attribute and a method method1. We have also defined two classes pke Class1 and Class2. So we have to implement the method ‘method1’ in both of the class implementations. We have implemented the method ‘method1’ differently in different classes. In the start-ofselection, we create two objects Object1 and Object2 for two classes. Then, we call the method by different objects to get the function declared in separate classes.
Report ZEncap1. Interface inter_1. Data text1 Type char35. Methods method1. EndInterface. CLASS Class1 Definition. PUBLIC Section. Interfaces inter_1. ENDCLASS. CLASS Class2 Definition. PUBLIC Section. Interfaces inter_1. ENDCLASS. CLASS Class1 Implementation. Method inter_1~method1. inter_1~text1 = Class 1 Interface method . Write / inter_1~text1. EndMethod. ENDCLASS. CLASS Class2 Implementation. Method inter_1~method1. inter_1~text1 = Class 2 Interface method . Write / inter_1~text1. EndMethod. ENDCLASS. Start-Of-Selection. Data: Object1 Type Ref To Class1, Object2 Type Ref To Class2. Create Object: Object1, Object2. CALL Method: Object1→inter_1~method1, Object2→inter_1~method1.
The above code produces the following output −
Class 1 Interface method Class 2 Interface method
Encapsulated classes do not have a lot of dependencies on the outside world. Moreover, the interactions that they do have with external cpents are controlled through a stabipzed pubpc interface. That is, an encapsulated class and its cpents are loosely coupled. For the most part, classes with well-defined interfaces can be plugged into another context. When designed correctly, encapsulated classes become reusable software assets.
Designing Strategy
Most of us have learned through bitter experience to make class members private by default unless we really need to expose them. That is just good encapsulation. This wisdom is appped most frequently to data members and it also apppes equally to all members.
Advertisements