メインコンテンツまでスキップ
バージョン: 20 R5 BETA

Class

プロジェクトにおいてユーザークラスが 定義 されていれば、それは 4Dランゲージ環境に読み込まれます。 クラスとは、それ自身が "Class" クラスのオブジェクトであり、プロパティと関数を持ちます。

概要

.isShared : Boolean    ユーザークラスが 共有クラスとして定義されている場合は true を返します
.isSingleton : Boolean    ユーザークラスが シングルトンクラスとして定義されている場合は true を返します
.me : 4D.Class    cs.className シングルトンクラスのシングルトンインスタンスを返します
.name : Text    4D.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

引数タイプ説明
paramany->コンストラクター関数に渡す引数
戻り値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