Class
プロジェクトに おいてユーザークラスが 定義 されていれば、それは 4Dランゲージ環境に読み込まれます。 クラスとは、それ自身が "Class" クラスのオブジェクトであり、プロパティと関数を持ちます。
概要
.isShared : Boolean ユーザークラスが 共有クラスとして定義されている場合は true を返します |
.isSingleton : Boolean ユーザークラスが シングルトンクラスとして定義されている場合は true を返します |
.me : 4D.Classcs.className シングルトンクラスのシングルトンインスタンスを返します |
.name : Text4D.Class オブジェクトの名称を格納します |
.new( { ...param : any } ) : 4D.Class 対象クラスの新規インスタンスである cs.className オブジェクトを作成して返します |
.superclass : 4D.Class 対象クラスの親クラスを返します |
.isShared
履歴
リリース | 内容 |
---|---|
20 R5 | 追加 |
.isShared : Boolean
説明
.isShared
プロパティは、ユーザークラスが 共有クラスとして定義されている場合は true
を返します。それ以外の場合は false
を返します。
このプロパティは 読み取り専用 です。
.isSingleton
履歴
リリース | 内容 |
---|---|
20 R5 | 追加 |
.isSingleton : Boolean
説明
.isSingleton
プロパティは、ユーザークラスが シングルトンクラスとして定義されている場合は true
を返します。それ以外の場合は false
を返します。
このプロパティは 読み取り専用 です。
.me
履歴
リリース | 内容 |
---|---|
20 R5 | 追加 |
.me : 4D.Class
説明
.me
プロパティは、cs.className
シングルトンクラスのシングルトンインスタンスを返します。 シングルトンクラスが前もってインスタンス化されていない場合、このプロパティは引数なしでクラスコンストラクターを呼び出し、インスタンスを作成します。 そうでない場合は、既存のシングルトンインスタンスを返します。
cs.className
が シングルトンクラス でない場合、.me
はデフォルトで 未定義 です。
このプロパティは 読み取り専用 です。
.name
履歴
リリース | 内容 |
---|---|
18 R3 | 追加 |
.name : Text
説明
.name
プロパティは、4D.Class
オブジェクトの名称を格納します。 クラス名の大文字・小文字は区別されます。
このプロパティは 読み取り専用 です。
.new()
履歴
リリース | 内容 |
---|---|
18 R3 | 追加 |
.new( { ...param : any } ) : 4D.Class
引数 | 型 | 説明 | |
---|---|---|---|
param | any | -> | コンストラクター関数に渡す引数 |
戻り値 | 4D.Class | <- | クラスの新規オブジェクト |
説明
.new()
関数は、対象クラスの新規インスタンスである cs.className
オブジェクトを作成して返します。 この関数は、cs
クラスストア に属する全クラスで自動的に利用可能です。
任意の param パラメーターに渡した引数は、当該 classNameクラス定義内の Class Constructor 関数 (あれば) が受け取ります。 コンストラクター関数においては、This
は新規に作成されるオブジェクトを指します。
- すでにインスタンス化されている シングルトンクラス に対して
.new()
を呼び出すと、新しいインスタンスではなくシングルトンインスタンスが返されます。 - 存在しないクラスを対象に
.new()
を呼び出した場合、エラーが返されます。
例題
Person クラスの新規インスタンスを作成するには、次のように書きます:
var $person : cs.Person
$person:=cs.Person.new() // 新規インスタンスの作成
//$person はクラス関数を格納しています
パラメーターを使って、Personクラスの新規インスタンスを作成するには、次のように書きます:
// クラス: Person.4dm
Class constructor($firstname : Text; $lastname : Text; $age : Integer)
This.firstName:=$firstname
This.lastName:=$lastname
This.age:=$age
// メソッド内の使用例
var $person : cs.Person
$person:=cs.Person.new("John";"Doe";40)
// $person.firstName = "John"
// $person.lastName = "Doe"
// $person.age = 40
.superclass
履歴
リリース | 内容 |
---|---|
18 R3 | 追加 |
.superclass : 4D.Class
説明
.superclass
プロパティは、対象クラスの親クラスを返します。 スーパークラスは、4D.Class
オブジェクト、あるいは cs.className
オブジェクトのいずれかです。 親クラスが存在しない場合は、このプロパティは null を返します。
ユーザークラスのスーパークラスは、Class extends <superclass>
キーワードを使ってクラス内で定義されます。
このプロパティは 読み取り専用 です。
例題
$sup:=4D.File.superclass // Document
$sup:=4D.Document.superclass // Object
$sup:=4D.Object.superclass // null
// `Class extends File` を使って
// MyFile クラスを作成した場合
$sup:=cs.MyFile.superclass // File
参照: Super