メインコンテンツまでスキップ
バージョン: 開発中

Class

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

概要​

.isSessionSingleton : Boolean
ユーザークラスが セッションシングルトンクラスとして定義されている場合は true を返します
.isShared : Boolean
ユーザークラスが 共有クラスとして定義されている場合は true を返します
.isSingleton : Boolean
ユーザークラスが シングルトンクラスとして定義されている場合は true を返します
.me : 4D.Object
cs.className シングルトンクラスのシングルトンインスタンスを返します
.name : Text
4D.Class オブジェクトの名称を格納します
.new( { ...param : any } ) : 4D.Object
対象クラスの新規インスタンスである cs.className オブジェクトを作成して返します
.superclass : 4D.Class
対象クラスの親クラスを返します

.isSessionSingleton​

履歴
リリース内容
20 R7追加

.isSessionSingleton : Boolean

説明​

.isSessionSingleton プロパティは、ユーザークラスが セッションシングルトンクラスとして定義されている場合は true を返します。それ以外の場合は false を返します。

このプロパティは 読み取り専用 です。

.isShared​

履歴
リリース内容
20 R5追加

.isShared : Boolean

説明​

.isShared プロパティは、ユーザークラスが 共有クラスとして定義されている場合は true を返します。それ以外の場合は false を返します。

このプロパティは 読み取り専用 です。

.isSingleton​

履歴
リリース内容
20 R5追加

.isSingleton : Boolean

説明​

.isSingleton プロパティは、ユーザークラスが シングルトンクラスとして定義されている場合は true を返します。それ以外の場合は false を返します。

このプロパティは 読み取り専用 です。

.me​

履歴
リリース内容
20 R5追加

.me : 4D.Object

説明​

.me プロパティは、cs.className シングルトンクラスのシングルトンインスタンスを返します。シングルトンクラスが前もってインスタンス化されていない場合、このプロパティは引数なしでクラスコンストラクターを呼び出し、インスタンスを作成します。そうでない場合は、既存のシングルトンインスタンスを返します。

cs.className が シングルトンクラス でない場合、.me はデフォルトで 未定義 です。

このプロパティは 読み取り専用 です。

.name​

履歴
リリース内容
18 R3追加

.name : Text

説明​

.name プロパティは、4D.Class オブジェクトの名称を格納します。クラス名の大文字・小文字は区別されます。

このプロパティは 読み取り専用 です。

.new()​

履歴
リリース内容
18 R3追加

.new( { ...param : any } ) : 4D.Object

引数型説明
paramany->コンストラクター関数に渡す引数
戻り値4D.Object<-クラスの新規オブジェクト

説明​

.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 を返します。

ユーザークラスのスーパークラスを定義するためには、extends キーワードを次のように使用してください: 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