2008年6月29日日曜日

JavaFX台本型プログラミング言語基準(草案):第2章

2.クラスとオブジェクト
2.1 クラスを取り込む
import文は、Javaプログラミング言語と同様に機能する。その構文は、

import パッケージ名.クラス名;

または、

import パッケージ名.*;

である。
import文が存在する場合は、それ以外のすべての応用コードの前になければならない。JavaFX台本型プログラミング言語は、自身の組み込みライブラリクラスのための名前空間(パッケージjavafx.*)を定義しているが、標準的なJavaプログラミング言語のクラスを取り込むこともできる。

import java.lang.System;
import javafx.gui.*;

Frame {
visible: true
content: FlowPanel {
content: Button {
text: "Click Me"
action: function() {
System.out.println("Click!");
}
}
}
}

クラスに関する利用修飾子は、Javaプログラミング言語におけるのと同様に機能する。クラスは、public、protected、またはprivateとして宣言でき、それぞれ、どこからでも(public)、現行のパッケージ内または派生クラス内から(protected)、もしくは現行クラス内のみから(private)利用できる。
注記:JavaFX台本型プログラミング言語は、構築子を支援していない。構築子の作用をまねるためには、新たなオブジェクトを返す静的関数を定義し、代わりにその関数を呼び出すことである。

2.2 クラスを定義する
JavaFX台本型プログラミング言語は多重継承を支援しており、そうしたものとして、新たな用語と規定を定義している。
・単純クラスは、Javaプログラミング言語で書かれたクラスを直接的または間接的に拡張した任意のクラスである。
・複合クラスは、単純クラスには当てはまらないすべてのクラスである。
・既定では、JavaFX台本型プログラミング言語で書かれたクラスは複合クラスである。
・クラスは、単純クラス一つだけを拡張することができる。そうしたクラスは、単純クラスとなる。クラスはまた、任意の数の複合クラスまたはJavaプログラミング言語のインタフェースを拡張することもできる。
注記:現在のところ、単純クラスはJavaクラスに変換され、複合クラスはJavaクラスとJavaインタフェースに変換される。
クラスを指定するための構文は、class鍵語に続けたクラス名、任意としてのextends鍵語とカンマ(,)で区切った基底クラス名の一覧、左中括弧({)、それぞれセミコロン(;)で終結している属性と関数の
一覧、そして右中括弧(})からなる。
既定では、クラスは同じ原始ファイルの中(モジュール通用範囲としても知られている)でのみ利用できるが、publicと宣言することによりどこからでも利用することができる。JavaFX台本型プログラミング言語は構築子を支援していないことに留意すること。構築子の作用をまねるためには、新たなオブジェクトを返す静的関数を定義し、代わりにその関数を呼び出すことである。

2.3 オブジェクトを定義する
前の章で述べたように、クラス実体化の推奨方法はオブジェクト直定数を使うことである。この形式のオブジェクト割り当ては、クラス名とその後に続く中括弧でくくった属性初期化子の
一覧から構成される宣言的構文を用いる。それぞれの初期化子は、属性名に、コロン(:)と属性の値を定義する式を続けて構成する。
オブジェクトを生成する際にnew鍵語を使うこともできるが、それは、Javaプログラミング言語のクラスの実体化がオブジェクト直定数によっては不可能である場合のために取っておくべきである。

import java.io.File;

var tmpPath = "/home/users/docs/tmp.txt"
var myFile = new File("tmp.txt");

0 件のコメント: