Class
プロジェクトにおいてユーザークラスが 定義 されていれば、それは 4Dランゲージ環境に読み込まれます。 クラスとは、それ自身が "Class" クラスのオブジェクトであり、プロパティと関数を持ちます。
概要
.name : Text 4D.Class オブジェクトの名称を格納します |
.new() : 4D.Class .new( param : any { ;...paramN } ) : 4D.Class 対象クラスの新規インスタンスである cs.className オブジェクトを作成して返します |
.superclass : 4D.Class 対象クラスの親クラスを返します |
.name
履歴
リリース | 内容 |
---|---|
18 R3 | 追加 |
.name : Text
説明
.name
プロパティは、 4D.Class
オブジェクトの名称を格納します。 クラス名の大文字・小文字は区別されます。
このプロパティは 読み取り専用 です。
.new()
履歴
リリース | 内容 |
---|---|
18 R3 | 追加 |
.new() : 4D.Class
.new( param : any { ;...paramN } ) : 4D.Class
引数 | 型 | 説明 | |
---|---|---|---|
param | any | -> | コンストラクター関数に渡す引数 |
戻り値 | 4D.Class | <- | クラスの新規オブジェクト |
|
説明
.new()
関数は、 対象クラスの新規インスタンスである cs.className
オブジェクトを作成して返します。 この関数は、cs
クラスストア に属する全クラスで自動的に利用可能です。
任意の param パラメーターに渡した引数は、当該クラス定義内の Class Constructor 関数 (あれば) が受け取ります。 コンストラクター関数においては、This
は新規に作成されるオブジェクトを指します。
存在しないクラスを対象に .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