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

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

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