Query)の作成手順【3分で読めます】BASIS【SAP】10分で学ぶ権限設計の概念・仕組みFI【SAP】反対仕訳(逆仕訳)とは?マイナス転記とは?FI【SAP】転記日付と伝票日付と登録日付の違い【ABAP】クラスとは?ABAPオブジェクト入門ABAPTwitterFacebookはてブPocketLINEコピー2020.01.27本ページでは、ABAPにおける「オブジェクト指向」のプログラミング方法であるABAPオブジェクトについて解説します。ABAPはもともと構造化プログラミング言語のため、実際はABAPオブジェクトを利用しなくても、通常のアドオン機能は構築可能です。今後のABAPは現在のモダンなプログラミング言語の主流であるオブジェクト指向を取り入れて拡張されていくことになっています。このページでは、オブジェクト指向とは何か?ABAPでどのように実現するのか?を1から解説していき、ABAPオブジェクトを用いて簡単な機能の開発ができるようになることを目指します。このページで学べる内容ABAPオブジェクトとは何か?オブジェクト指向の簡単な説明クラスとは何か?属性とメソッドについてインスタンス化とは何か?ABAPerであれば、知っておいて損はない役立つ知識を多く記載していますので、是非最後までご覧ください。目次ABAPオブジェクトとは?ABAPオブジェクト:クラスとは何か?ABAP:クラスの定義方法クラスの宣言セクション:CLASSーDEFINTIONサンプルコード:DEFINTIONクラスの実装セクション:CLASS―IMPLEMENTATIONサンプルコード:IMPLEMENTATIONオブジェクトの登録方法コードルール(インスタンス化)サンプルコードメソッドの呼び出しコードルールサンプルコード(インスタンス化から処理実行まで)ABAPを1から勉強したい方はABAPオブジェクトとは?ABAPはもともとオブジェクト指向の言語ではありませんでした。ABAPは手続き型言語に分類され「オブジェクト指向」という考え方が普及する以前に成立した言語です。そのため、基本的にはABAPはオブジェクト指向を知らなくてもコーディングが可能です。そのうえで、オブジェクト指向を取り入れることで開発プロセスにおけるソフトウェアの構造化と整合性の向上が見込めることから、ABAPもオブジェクト指向的に拡張されました。このABAPにおけるオブジェクト指向的に拡張された領域こそ、「ABAPオブジェクト」と呼ばれる機能群です。したがって、ABAPオブジェクトを理解するためには、オブジェクト指向とは何かをある程度把握している必要があります。このページでは、オブジェクト指向の一般的な知識も補足しつつ解説します。ABAPオブジェクト:クラスとは何か?ABAPオブジェクトを理解するために最も重要な概念―。「クラス」について0から解説していきます。クラスは「設計書」と説明されることが多い概念です。この設計書は、「どのような要素から構成されるか」と「何ができるのか」が記述されています。いうことか、具体的にイメージをしやすいように「スマートフォン」を例にして説明します。iPhone)色・・・etc例)何ができるのか?メソッド電話をかけるインターネットにつなぐ写真を撮る動画を再生する・・・etc設計書という言葉をさらに分かりやすく言い換えると、クラスは「テンプレート」です。スマートフォンクラスは「スマートフォンのテンプレート」であり、実際にスマートフォンを作る際には、このテンプレートに沿って作成していくことになります。上記のスマートフォンクラス(スマートフォンの設計書)をもとに、iPhone10やpixelといった実際のスマートフォンを作成することをインスタンス化と言います。黒オブジェクト指向のプログラミングでは、「クラス」を基に様々なスマートフォンを作成することが可能になります。クラスに基づいて作成されたスマートフォンは、その時点で「電話をかける」ことができ「動画を再生できる」ようになります。クラスがなければ、似たような機能であっても別々のものとして定義する必要があるため、コーディングが大変で、保守性も落ちてしまうことになります。言い換えればクラスを用いることで、コード全体の可読性を向上させることが可能になるのです。ABAP:クラスの定義方法クラスが何者なのかなんとなく理解できたところで、ここからは実際のコードを用いてより具体的にクラスとは何なのか?を解説していきます。先ほど解説した通りクラスは、以下2つの内容で構成されます。クラスの定義方法も大きく2つのパートに分かれます。クラスの実装セクションクラス定義は、大きく1クラスの宣言セクション、と2クラスの実装セクションから構成されます。クラスの宣言セクションの役割は、プロパティとメソッドの構成を定義することです。スマートフォンクラスを作るとしたら「品番」「メーカー」「色」などの必要不可欠なプロパティと、どのようなメソッド(「電話をかける」「メールをする」)を持つか?を指定していきます。SECTION).・・・ENDCLASS.クラスを定義する構文です。定義でポイントとなるのは可視性です。プロパティを定義する際には、かならず1つ以上のSECTION命令を利用する必要があります。(1つのクラスの中に3つ全てのSECTION命令を置く必要はありません。SECTION)に定義したプロパティは、当該クラスの外部、サブクラスの内部、当該クラスの内部で参照できるようになります。SECTION)に定義したプロパティは、サブクラスの内部、当該クラスの内部で参照できるようになります。SECTION)に定義したプロパティは、当該クラスの内部でのみ参照できるようになります。ENDCLASS.クラスの実装セクション:CLASS―IMPLEMENTATIONCLASS(クラス名)IMPLEMENTATION.・・・METHOD・・・ENDMETHOD.・・・ENDCLASS.先ほどとは異なりクラス名の後に「IMPLEMENTATION」と記述します。することで、メソッドの定義を行うことを示すことができます。ENDMETHODO.ENDCLASS.さて、これでクラスの定義が完了です。先ほどのプロパティの定義と合わせてコードを確認してみましょう。ENDMETHODO.*******************************************ENDCLASS.さて、ここまできてようやく処理を実行する準備が整います。ここからは、定義したクラスを基にオブジェクトを作り、実際に動かしていきます。ここまでの処理で「やっとスマートフォンのテンプレート」が定義された状態になります。したがって、まだスマートフォンという実態は存在していません。言い換えると、「スマートフォンのテンプレートはあるけど、iPhoneはまだ作れていない」という状態です。設計方法を定義しただけれあり、その設計書を基にしたiPhoneXは未だ存在しないのです。このテンプレートを基に、実際にiPhoneを作成することをインスタンス化と言います。インスタンス化をすることで、実際にiPhoneが作成され、電話をかけたりメールをしたりすることができようになります。以下では、インスタンス化の手順を解説します。Objectx.DATA命令でオブジェクトの型を定義します。OBJECT命令でオブジェクトを登録します。サンプルコードの例では、class1で事前定義した「char25」の型を持つ、オブジェクトを登録しています。これで実際にオブジェクトが登録されました。次のメソッドの呼び出しでオブジェクトを動かします。METHOD命令で事前定義した処理を呼び出します。+(動かしたいオブジェクト名)⇒(動かしたい処理)で対象を動かすことができます。ABAPを1から勉強したい方はABAPを1から学習したい方は、以下の記事で学習するのがお勧めです。【ABAP入門】SAPを構成するプログラミング言語―ABAP(あばっぷ)の勉強方法を初心者向けに1つのページにまとめました。基本的な構文ルールから、内部テーブルの利用、システム項目まで!このページを理解すれば、簡単な機能の実装が可能になります。本ページでは、ABAPの基礎知識―テキストシンボルについて解説しています。テキストシンボルは、名称付きのデータオブジェクトのことで、画面上で表示する文字・テキストをIDで管理したものです。実際のプログラムでは、このIDを指定するこ...2019.12.31ABAP【ABAP】内部テーブルの宣言―理解しておきたい3つのポイントABAPプログラミングの一番の特徴をあげるとすれば、「内部テーブル」です。いえ...2019.10.10ABAP【ABAP】SELECT-SINGLE―押さえておきたい2つのポイント以前解説したSELECT-SINGLE命令の補足編をポイントを2つに絞り解説します。そもそものSELECT-SINGLE構文を知りたい!という方は、まずは以下のページを読んでから戻ってきてください。本ページでは、テーブル(データベース)レコードの変更・更新するUPDATE文について解説します。UPDATEは、DBテーブルのレコードを更新する命令です。INSERT文とセットで学習するとより理解が進むかと思いますので、お時間があ...2020.01.06ABAP【ABAP】3分で学ぶSORT命令―内部テーブルのソート内部テーブルを昇順・降順での並び替えを行うSORT命令について解説します。SORT命令は単純な並び替えを行うだけのように理解してしまいがちですが、実は結構奥が深い(ソートの優先順や、昇順・降順の混合など)命令です。このペー...2020.01.08ABAP内部テーブル/構造/変数―ABAPの3つの基本ABAPをコーディングする上で、主に初心者が躓きがちな「内部テーブル」「構造(ワークエリア)」「変数」について整理して解説しています。ビズドットオンライン.HOMESAPWEBデザインIT-SkillsLifeHackVBAPythonタイトルとURLをコピーしました。