オブジェクト指向SAP ABAP–オブジェクトとクラス
このチュートリアルでは、ABAPがビルトオブジェク
SAP ABAPの世界では、OOPが何を意味するのか、それが何を伴うのかについて学びます。
OOPとは何ですか?
- オブジェクト指向プログラミングは、タスクをデータと関数を持つオブジェクトに分解します。
- この方法は、ソフトウェアプログラミングを理解しやすく、柔軟で再利用可能にします。
- オブジェクト指向プログラミング(OOP)は、シンプルさと雄弁さを念頭に置いて作成されました。
- 共通言語、すなわち物の言語を使って、人々が明確にコミュニケーションをとり、情報やアイデアを交換するようにします。
- これらのオブジェクトは、プロパティ(データ)と動作(または関数)の二つの主要な特性で構成されています)
OOPの主な特徴は次のとおりです–
- データ抽象化
- カプセル化
- 手順ではなくデータに重点を置く
- ‘object’と呼ばれる実世界のエンティティの使用
- データのプライバシーと保護
最新の技術動向で更新滞在
電報にDataFlairに参加!!
POP vs OOP
Procedure-Oriented Programming(POP)は、トップダウン方式で問題にアプローチします。 これは、線形の方法でデータではなく手順を強調しています。
POPとOOPの違いをいくつか見てみましょう–
ポップ | |
POPはProcedure-Oriented programming | OOPはObject-Oriented programmingの略です |
データ(タスク) | ではなく、プロシージャ(タスクを実行する)に焦点を当てています。 |
POPは問題解決におけるトップダウンファッションに従う | OOPは問題解決におけるボトムアップファッションに従う |
それはと呼ばれるより小さい部分にプログラムを分けます 関数またはモジュール | プログラムをオブジェクトと呼ばれる小さな部分に分割します |
関数はグローバルデータを共有し、データは互いに非表示にできません | 関数はグローバルデータを共有しません–データにアクセスできるユーザーを決定できます |
データ保護にあまり重点を置いていない | OOPの焦点の主なポイントの一つは、データ保護です |
機能の拡張とデータの追加は面倒で時間がかかります | 機能の拡張と新しいデータの追加は、単純にすることで非常に簡単です 新しいオブジェクトの追加 |
継承、多型、カプセル化の概念は使用されていません | 継承、多型、カプセル化の概念は、OOPのまさに基礎を形成します |
たとえば、C、Pascal、FORTRAN | たとえば、Java、Python、C++ |
ABAPのOOP
- 当初、SAPはABAPをPOP言語として開発しました。
- しかし、時間が進むにつれて、彼らはそれをシフトし、OOP言語に変換しました
- したがって、ABAPはオブジェクト指向とオブジェクトのようなパラダイム
- OOPの一部として、ABAPは継承、オーバーロード、データの非表示などの概念を使用します。 より良い機能のために。
まず、OOPの基本的な用語をいくつか理解することから始めましょう
知っておくべき基本的な用語
用語 | 意味 |
Object | データと動作を持つ実世界のエンティティ |
クラス | 主にデータフィールドとデータに関連する特性を含むオブジェクトの複雑なコレクション |
メソッド | オブジェクトの動作、すなわち オブジェクトが実行する汎用モジュール |
Member | クラスのデータメンバまたはメンバ関数のいずれか |
Instance | objectの同義語。通常は”クラスのインスタンス”として使用されます’ |
インスタンス化 | クラスの新しいオブジェクトの作成 |
SAP ABAP
- のオブジェクトオブジェクトは、データと動作を含む実世界のエンティティです。
- これらの特性と動作は、オブジェクトの状態、およびオブジェクトが実行するアクションを定義します。
- オブジェクトは、前述したように、クラスの青写真またはインスタンスです。
- 例えば、従業員、本、リンゴの木–すべてがオブジェクトです。
ABAPでオブジェクトを作成する
ABAPでオブジェクトを作成する方法を見てみましょう–
構文:
DATA: <object_name> TYPE REF TO <class_name>. "Create reference variable CREATE Object: <object_name>. #Create object from ref. var.
例:
DATA: dataflairobject TYPE REF TO dataflairclass. CREATE Object: dataflairobject.
レポートの例:
REPORT ZR_SS_DATAFLAIR_SAMPLE_001.CLASS ClassDataFlair Definition.Public Section.DATA: dataflairtext(45) VALUE 'Data Flair OOPS tutorial in ABAP: data.'.METHODS: DataFlairMethod.ENDCLASS.CLASS ClassDataFlair Implementation.METHOD DataFlairMethod.Write:/ 'Data Flair OOPS tutorial in ABAP: method.'.ENDMETHOD.ENDCLASS.START-OF-SELECTION.DATA: ClassDataFlair TYPE REF TO ClassDataFlair.CREATE Object: ClassDataFlair.Write:/ ClassDataFlair->dataflairtext.CALL METHOD: ClassDataFlair->DataFlairMethod.
出力
SAP ABAPのクラス
- クラスは、オブジェクトの複雑なコレクションです
- データメンバー(特性)とメンバーメソッド(関数)が含まれています。
- クラスは、オブジェク8392>クラスのプライバシーを記述することができます
- これが意味することは、クラスの特定のデータに誰がアクセスできるかを定義することができます
abapでクラスを作成する
abapでクラスを作成するには、二つの方法があります ステップ–
1. 宣言
構文–
CLASS <class_name> DEFINITION.//define classENDCLASS.
例–
CLASS dataflairclass DEFINITION.//define classENDCLASS.
2. 定義
構文–
CLASS <class_name> IMPLEMENTATION.//define classENDCLASS.
例–
CLASS dataflairclass IMPLEMENTATION.//define classENDCLASS.
SAP ABAPの属性
- 属性は、クラス
- の特性であり、P、F、Iなどの任意の事前定義されたデータ型を持つことができます。
- 私たちは、クラス宣言セクションで属性を宣言する必要があります
- 属性は二つのタイプのものです:
- インスタンス: これには、オブジェクトのインスタンス固有の状態が含まれ、変更はすべてのオブジェクトで異なり、これはDATA文で宣言されます
-
- 静的: これには、クラスのすべてのインスタンスで共有されるクラスの共通の状態が含まれているため、1つの状態を変更すると、他のすべてのオブジェク
SAP ABAPのメソッド
- メソッドはモジュールまたは関数です
- クラスのオブジェクトの動作です
- メソッドはクラスの任意の特性にアクセスできます
- クラス
- メソッド定義を呼び出すオブジェクトによって実行されるアクションが含まれています。は
- と呼ばれるMETHODステートメントとENDMETHODステートメント
構文を使用してメソッドを定義できます:
METHOD…ENDMETHOD
SAP ABAP
での属性およびメソッドへのアクセス1. メソッドと属性は、クラス
2のオブジェクトからアクセスできます。 アクセス指定子–public、private、protected–は、クラスアクセス指定子
- publicを宣言すると、どのクラスからもアクセスできます
- privateを宣言すると、どのクラスからもアクセスできません
- protectedを宣言すると、クラスを継承することによってのみアクセスできます
クラス、属性、メソッドを記述し、それらにアクセスする方法の例–
例:
REPORT ZR_SS_DATAFLAIR_SAMPLE_001.CLASS dataflairclass Definition. PUBLIC Section. Data: dataflairtext01 Type char25 Value 'Public Data Flair'. Methods dataflairmethod. PROTECTED Section. Data: dataflairtext02 Type char25 Value 'Protected Data Flair'. PRIVATE Section. Data: dataflairtext03 Type char25 Value 'Private Data Flair'.ENDCLASS.CLASS dataflairclass Implementation. Method dataflairmethod. Write: / 'Public Method:', / dataflairtext01, / dataflairtext02, / dataflairtext03. Skip. EndMethod.ENDCLASS.Start-Of-Selection. Data: Objectx Type Ref To dataflairclass. Create Object: Objectx. CALL Method: Objectx->dataflairmethod. Write: / Objectx->dataflairtext01.
出力
パブリックメソッド:
Public Data Flair
Protected Data Flair
Private Data FlairPublic Data Flair
Public Data Flair
Protected Data Flair
Private Data FlairPublic Data Flair
SAP ABAPの静的属性の例
REPORT ZR_SS_DATAFLAIR_SAMPLE_001.CLASS dataflairclass Definition. PUBLIC Section. CLASS-DATA: dataflairname Type char45, dataflairdata Type I. Methods: dataflairmethod.ENDCLASS.CLASS dataflairclass Implementation. Method dataflairmethod. Do 4 Times. dataflairdata = 1 + dataflairdata. Write: / dataflairdata, dataflairname. EndDo. Skip. EndMethod.ENDCLASS.Start-Of-Selection. dataflairclass=>dataflairname = 'ABAP Object Oriented Programming'. dataflairclass=>dataflairdata = 0. Data: Object1 Type Ref To dataflairclass, Object2 Type Ref To dataflairclass. Create Object: Object1, Object2. CALL Method: Object1->dataflairmethod, Object2->dataflairmethod.
SAP ABAPのコンストラクタ
- コンストラクタは特別なタイプのメソッドです
- オブジェクトを作成オブジェクトのデータを初期化するジョブを実行する
- クラスのオブジェクトが作成されると、プログラムはコンストラクタを自動的に呼び出します
- コンストラクタは、実行中にオブジェクトが新しく作成されるたびに含まれる操作をトリガーします
ABAPコンストラクタの例
REPORT ZR_SS_DATAFLAIR_SAMPLE_001.CLASS dataflairclass Definition. PUBLIC Section. Methods: dataflairmethod, constructor.ENDCLASS.CLASS dataflairclass Implementation. Method dataflairmethod. Write: / 'This is the method'. EndMethod. Method constructor. Write: / 'This is the constructor'. EndMethod.ENDCLASS.Start-Of-Selection. Data Object1 Type Ref To dataflairclass. Create Object Object1.
出力
これは、sap ABAPのコンストラクタ
ME演算子
- 異なる値を持つメソッド内で変数を再定義するたびに、そのメソッドは変数
- の再定義値を使用しますが、最初に宣言された値は、その後、あなたはMe演算子を使用することができます
- 私たちはMe演算子を使用しての例を見てみましょう
abapでme演算子の例
REPORT ZR_SS_DATAFLAIR_SAMPLE_001.CLASS dataflairclass Definition. PUBLIC Section.Data dataflairtext Type char25 Value 'Here we have class value'. Methods dataflairmethod.ENDCLASS.CLASS dataflairclass Implementation. Method dataflairmethod.Data dataflairtext Type char25 Value 'Here we have method value'. Write: / ME->dataflairtext, / dataflairtext. ENDMethod.ENDCLASS.Start-Of-Selection. Data objectx Type Ref To dataflairclass. Create Object objectx. CALL Method objectx->dataflairmethod.
出力
ここでは、クラス値
を持っていますここでは、メソッド値
を持っていますここでは、メソッド値
を持っています
概要
このチュートリアルでは、ABAPおよび他の多くの言語が組み込みオブジェクト指向プログラミングである基本について学びました。 オブジェクトの向きがプロシージャの向きとどのように異なるか、その重要性、最も重要な用語について学びました。
このチュートリアルのパート#2では、継承、多態性などのオブジェクト指向のさらなる概念に飛び込みます。