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

Class

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

概要​

.name : Text    4D.Class オブジェクトの名称を格納します
.new() : 4D.Object
.new( param : any { ;...paramN } ) : 4D.Object
    対象クラスの新規インスタンスである cs.className オブジェクトを作成して返します
.superclass : 4D.Class    対象クラスの親クラスを返します

.name​

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

.name : Text

説明​

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

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

.new()​

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

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

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

説明​

.new() 関数は、対象クラスの新規インスタンスである cs.className オブジェクトを作成して返します。この関数は、cs クラスストア に属する全クラスで自動的に利用可能です。

You can pass one or more optional param parameters, which will be passed to the class constructor function (if any) in the className class definition. コンストラクター関数においては、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 を返します。

ユーザークラスのスーパークラスを定義するためには、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