PowerBuilder の開発言語とは?(2)~ PowerBuilder 入門!! 第 5 弾~

みなさん、こんにちは!

このブログは、「PowerBuilder ってなに?」「PowerBuilder ってなにができるの?」という疑問に、IT 用語の解説もしつつ、簡単に分かりやすくお答えすることをモットーにしています。

気になる方はぜひ続きを見てみてくださいね。

キャラクター紹介

ねこぴ自己紹介

ねこぴ

PowerBuilder の日本語版オリジナルキャラクター。
(猫に見えるが) PowerBuilder の先生。

最近、キリンのものまねにはまっている。

ちまき自己紹介

ちまき

PowerBuilder をこれから学びたい開発初心者。

最近、ある料理作りにはまっているが・・・?

ある日の午後のこと・・・。

ねこぴ話す

さて、前回のブログでは PowerBuilder の開発言語とオブジェクト指向について解説したけど、分かったかにゃ?

ちまき笑う

はい!

PowerBuilder の開発言語は PowerScript で、Excel の VBA と構文が似ているんですよね!

あとオブジェクト指向と結びつきがあるとかないとか・・・。

ねこぴ説明

そうにゃ。

今回は PowerBuilder とオブジェクト指向の結びつきについて解説するけど、それはそれは、カレーと福神漬け、いや、味噌汁とご飯って感じくらい密接に関わっているのにゃ。

ちまき笑う

例えがちょっと分からないです。

 

前回のブログから PowerBuilder はオブジェクト指向と関係があるということが分かったと思います。

今回は PowerBuilder とオブジェクト指向はどう結びついているのかについて解説していきます。


PowerBuilder って何なの?と思ったあなた!

PowerBuilder 入門ブログシリーズ第 1 弾をぜひご覧ください(^◇^)

PowerBuilder とは? ~PowerBuilder 入門!! 第 1 弾~

 

動画で分かりやすく PowerBuilder について知りたいなあという方は・・・

YouTube で PowerBuilder 入門シリーズの動画を公開中!なので要チェック★

最新の動画はこちらから!↓↓↓


まずはオブジェクト指向の復習をしましょう。

オブジェクト指向とは、オブジェクト (=もの) の中にメソッド (=オブジェクトの動作やオブジェクトに対する操作、「ふるまい」) とプロパティ (=オブジェクトの「状態」であったり、動作する上での「設定値」など) がある考えのことを言います。

前回のブログでゲームキャラに例えましたが、

その際、オブジェクトはキャラクターの本体、メソッドは技、プロパティは容姿などの特徴と言いました^^

つまりオブジェクトをベースとして、その中にメソッドとプロパティがあるのです。

 

オブジェクト指向の図

 

作成したアプリケーションには大小さまざまなオブジェクトが存在していて、

そのオブジェクトの中にさらにどのような処理をするのかというメソッド (関数) と、

どういったオブジェクトなのかという特徴 (プロパティ) を内包しているということなのです。

こういった考え方を基にアプリケーションなどを作成していくことを、

オブジェクト指向に基づいた開発といいます。


そうですよね。そもそもなぜオブジェクト指向という考え方を使用するのか?

まあ、その考え方を使うとメリットが多いということなんですよね。

オブジェクト指向を使用する主な理由は以下の通りです。

  • 修正・変更の作業時間が削減できる

  • プロジェクトを分かりやすく管理できる

具体的にどういうことなのか解説していきますね^^

まず 1 点目。例えば、100 個のオブジェクトで作成された大規模なアプリケーションがあり、その半分の 50 個のオブジェクトにまったく同じ処理を行うメソッドが実装されているとします。

ところがその共通のメソッドに修正点が見つかったとします(; ・`д・´)

そうすると 50 箇所をちまちまと修正していては時間がいくらあっても足りません。そこで活躍するのがオブジェクト指向を意識した開発方法です。

オブジェクト指向の「継承」というしくみを利用し、共通となる処理を実装したオブジェクトを作成してそれを流用することで、大元の処理を直すだけで 50 個すべてのオブジェクトに修正が反映されるという仕組みを作ることができます。

2 点目として、オブジェクト単位で開発することで、どこにどんなメソッドやプロパティがあるのかが分かりやすくなりますよね。

例えば、 データウィンドウとは? ~PowerBuilder 入門!! 第 2 弾~でも記載されているシステムツリーはアプリケーションを作成したら、ウィンドウなどのオブジェクトがリスト化されていきますが、そのウィンドウの中にメソッドやプロパティが管理されている状態なので、従来と異なる開発者が開発をする場合でも、どこに何があるか分かりやすい仕様となっています。


では PowerBuilder のコードを見て、具体的にオブジェクト指向がどう使用されているか確認していきましょう!

これは PowerBuilder の開発において便利なテクニックを紹介している Tips の「エディットマスクコントロールの和暦データを西暦で取得する」に記載されているソースコードです。

このソースコードはどこかのウィンドウに記述されていると考えてください。

ウィンドウは「オブジェクト」の一種です。

そしてそのウィンドウ内に記述されている以下コード内の 3 行目に GetData という関数が記述されてます。

// 変数を定義
date ld_date
// エディットマスクコントロールに和暦データを設定する
em_1.text = "令和03年12月27日"
// ld_date に 2021/12/27 の日付データが格納される
em_1.Getdata(ld_date)
// 取得したデータを表示する
MessageBox("タイトル","西暦 : " + String(ld_date, "yyyy/mm/dd"))

エディットマスクに “令和03年12月27日” という値をセット後、GetData 関数を使用することで変数 ld_date に 2021/12/27 という日付データが格納されます。「メソッド」はオブジェクトの動作やオブジェクトに対する操作、「ふるまい」ですね。

対して「プロパティ」というのは、オブジェクトの「状態」であったり、動作する上での「設定値」などを意味しているのでしたね。

つまり、オブジェクトがどんな状態なのかも分かりますし、値もセットできます。

上記のコードを見てみると「em_1.text = “令和03年12月27日”」という式が確認できますよね。

この「text」というのはプロパティであり、ドット前のコントロールの「入力値」を表すものなのです。

em_1 とはエディットマスクコントロールというウィンドウに配置するコントロールの一種で、「em_1.text = “令和03年12月27日”」というのはそのコントロールに text プロパティを使って値を入れているということです。

このように、ウィンドウというオブジェクトの中にメソッドやプロパティがあることが確認できますよね。

まさにオブジェクト指向を基にした開発と言えます。

 

こ・こ・で補足★

PowerBuilder では ProfileString や Open などの組み込み関数、新規作成から作る関数オブジェクト、外部関数は「関数」と呼び、データウィンドウの Retrieve や SetTransObject などは「メソッド」と呼ぶことが多いです。

基本的には上記のような呼び名の違いがあることを頭の片隅にでも入れといていただけると嬉しいです!


ちまき笑う

すっきりです!

確かに PowerBuilder はオブジェクト指向を基にした開発方法であることが分かりましたね!

ねこぴ問いかけ

そうにゃね。

実際に開発をしていくにつれて、さらに理解力も深まっていくはずにゃ。


PowerBuilder マイグレーション
PowerBuilder学習、動画で始めちゃう?