JavaFX Scriptの趣


JavaFX Scriptの趣を得る一番良い方法は、いくつかのサンプルを見ることです。 もしこれらが意味をなさなくても心配しないでください。 このリファレンスの残りの部分が詳細を提供します。

JavaFX Scriptのプログラムは、ひとつまたは複数のスクリプトで書かれます。 ひとつのスクリプトは式と宣言から成り、通常はひとつのファイルです。 次は式で、正しいスクリプトです。

4

これは正しいスクリプトですが(数字の4を評価する以外には)何もしません。 コンソールに結果を表示するには、私達はビルトイン関数のprintlnを使って式の結果を印字できます。

println(4)

そしてそれは、お決まりのHello Worldスクリプトを見せるのに魅力的です。

println("Hello, World")

このスクリプトはもちろんこう印字します。

Hello, World

JavaFX ScriptにHello Worldを書くことは確かに簡単ですが、 言語の精神としてこれは本当ではありません。 なぜなら、それはグラフィカルではないからです。 JavaFXプラットホームのグラフィカルの能力の使い方について、個々のチュートリアルがあります。 それについてはBuilding GUI Applications With JavaFX をご覧ください。

あなたはもちろん、もっと複雑な式を持てます。

println("Circumference is { 2*3.1415*7 } ")

印字結果:

Circumference is 43.981

式が中括弧に囲まれていることに注意してください。印字されたものが文字列式です。 中括弧の中の式の文字列表現は、実行時に評価されます。 文字列式の値は、中括弧の中の式を置き換えた文字列式が付いた全体になります。 それは{ 2*3.1415*7 }が、実行時の{ 2*3.1415*7 }の値である43.981に置き換えられるということです。

より良いプログラミングのスタイルは、マジックナンバーの代わりに名前をつけた変数を使うよう私達に勧めています。 そのほうがやりやすいからです。

def PI = 3.14159265; 
var r = 7; 
println("Circumference is { 2 * PI * r } ")

このPIは常に3.14159265であると定義されています。一方、変数rは7で始まります。が、変更は可能です。

さらに私達の小さいスクリプトを改良すると、円周を計算するための関数を定義することもできます。

def PI = 3.14159265; 
var r = 7; 
function circumference(radius) { 2 * PI * radius }
println("Circumference is { circumference(r) } ")

関数circumferenceは入力としてradiusを取り、式2 * PI * radiusの値を返します。

JavaFX Scriptは変数と関数の型を解明するために型の推論を使うことに注意してください。 型の推論とは、コンパイルが私達に明示的な名前付けを要求するよりも、 文脈から変数と関数の型を推論することを意味します。 私達は求められるなら、常に明示的な型の名前から解放されます。 明示的な型の宣言付きで、このプログラムはこう書かれます。

def PI : Number = 3.14159265;  
var r : Number = 7; 
function circumference(radius : Number) : Number {
   2 * PI * radius 
} 
println("Circumference is { circumference(r) }")

Java,C++,Rubyを含めた多くの他の言語のように、JavaFX Scriptはあなたに具象や抽象なエンティティを表すために クラスを使うことを許しています。このケースではPointです。

class Point { 
   var x : Integer; 
   var y : Integer; 
   function show() {
      println("Point {x}, {y}")
   } 
} 

このクラスは二次元の座標のための抽象的なデータ型を定義します。 そのxとyの座標を保存するインスタンス変数を持っています。 コンソールにPointの状態を表示する関数も定義されています。

私達はオブジェクトリテラルを使うPointのインスタンスを生成します。 以下のように私達にインスタンス変数へ初期値を与えさせます。

var myPoint = Point { 
   x: 12
   y: 9
}

これはxとyの値にそれぞれ12と9を持つPointを生成します。

最後に、私達はそのPointに(上でPointクラスに定義した)そのshow()関数を呼び出すことで、 それ自身を印字することを問うことができます。

myPoint.show()

印字結果:

Point 12, 9

JavaFXへの例題ベースの入り口として、 Learning the JavaFX Script Programming Language のJavaFX Scriptチュートリアルをご覧ください。


Home