4Dによるオブジェクト指向プログラミングの入門書。クラス

Deeplからの自動翻訳

Object型が登場して以来、多くの方がObject型を定義できるようにしたいと要望してきました。オブジェクト表記法のおかげで、多くの人がオブジェクト関数を持つことを夢見るようになりました。 4D v18 R3 プロジェクトデータベースで、クラスが使えるようになりました。このブログでは、オブジェクト指向プログラミングの最も興味深いコンセプトの1つを紹介します…データベースの例とボーナスビデオ付きです

Person” クラスの例

:4D v18 R3から、すべてのHDIはGitHubでホストされるようになりました。HDIをクローンするか、直接Zipファイルをダウンロードしてください。詳しくは、このパラグラフをご覧ください。

クラスとは?

クラスは、オブジェクトの振る舞いを定義することができるユーザー定義のデータ型です。クラスには独自のメンバ関数が含まれており、クラスのインスタンスが作成されたときにアクセスして使用することができます。

クラスの作成方法

クラスの作成は、ツールバーの「新規作成」メニュー、または「エクスプローラ」ダイアログから行うことができます。クラスエディタが表示されたので、コンストラクタと関数を作成します。

クラス関数を作成するには?

関数を作成するには、Function キーワードに続けて関数名を指定する必要があります。そして、(メソッドと同じように)パラメータを渡すことができます。

Function methodName
( ; ) :="こんにちは "+C_TEXT$0$1
$0
.$1

クラスストアとは?

ds コマンド(データストアにアクセスできる)はすでにご存知でしょう。同じロジックで、cs コマンドはクラス・ストアを返します。作成したすべてのクラスは、クラス・ストアで見ることができ、利用することができます。

クラスのインスタンスであるオブジェクトを作成するには、cs コマンドとnew メンバー関数を使用します。

C_OBJECT($o)
$o :=cs.myClass.new()

コンストラクターとは何ですか?

コンストラクターは、デフォルトの属性を持つオブジェクトを作成し、インスタンス化するために使用されます。オブジェクトが初期化されるときに自動的に呼び出されます。

エディタでは、単にClass constructor と記述してください。コンストラクタにパラメータを渡して、特定の変数を初期化することができます。これは、メソッドで $1 や $2 などを使用するのと同じです。

クラスの場合。

Class constructor
( ) . :=C_LONGINT$1
Thisvariable$1

クラスのオブジェクトをインスタンス化するメソッドでは、新しい メンバ関数にパラメータを渡します。

C_OBJECT($o)
$o :=cs.Class1.new(8)

具体的な例として、”Person “クラスを見てみましょう。作成するのは

  • コンストラクタ
  • getFullName 関数
  • getAge 関数です。

以下は、私のクラスの内容です。

Class constructor
( ) ( ) ( ) := := .:= ( ) := . +" "+ ( . ) ( ) :=( - . )/365.25C_TEXT
$1 // FirstName
C_TEXT$2 // LastName
C_DATE$3 // Birthdate ThisfirstName$1
ThislastName$2
ThisbirthdateFunction getAge$3

Function getFullName
C_TEXT$0
$0ThisfirstNameUppercaseThislastName

C_LONGINT$0
$0Current dateThisbirthdate

さて、あるメソッドで “Person “オブジェクトを作成します。そして、属性を読み込んで、関数を実行します。

C_OBJECT // return John$fullName($o)
$o :=cs.Person.new("John"; "Doe";!1956-10-27!)// instantiate the object

$firstname :=$o.firstName
$lastname :=$o.lastName // return Doe
:=$o.getFullName() // return John DOE

$age:=$o.getAge() // return 63

次回は?

次回のブログでは、クラス間の継承の概念について説明します。

Vanessa Talbot
- プロダクトオーナー - Vanessa Talbotは、2014年6月に4Dプログラムチームに参加しました。プロダクトオーナーとして、彼女はユーザーストーリー(ユーザーが期待する新機能とその使用法)を書き、それを具体的な機能仕様に変換する役割を担っています。また彼女の役割は、実装された機能が顧客のニーズを満たしているかどうかを確認することでもあります。入社以来、4Dにおける主要機能の定義に関わってきました。プリエンプティブ/マルチスレッドの新機能の大部分と、非常に複雑なテーマである組み込みアプリケーションの新アーキテクチャに取り組んできました。VanessaはTelecom Saint-Etienneで学位を取得後、Criminal Research Institute でオーディオビジュアル部門の開発者としてキャリアをスタートさせました。また、メディアや医療の分野でも、技術サポートやプロダクションの分野で働いてきました。