クラスとインスタンス化
まずは訂正から
JavaFXをはじめよう - 気になるITまわり
でdefは初期化が必要と書いていますが、defは基本的に一度しか代入できない、つまり定数っぽいですね。
def a = 4; a = 3;
つまり、これだと2行目でエラーが出ます。
ここからが今日の本題。
まず、クラス。たいしてJavaと変わらない
class Person { var name: String; var age: Integer; function introduce(): Void { println("My name is {name}! {age} years old."); } }
インスタンス変数はvarで定義。
メソッドはfunctionで定義。戻り値はメソッド名定義の後ろ。
これくらいでたいしてJavaと変わりがない。
このクラスのインスタンス化は
def p = Person { name: "Hiroaki" age: 27 } p.introduce();
こんな感じ。
Javaっぽくnewを使う事も可能
def p2 = new Person(); p2.name = "hiroaki"; p2.age = 27; p2.introduce();
こんな感じ。
でも、やっぱりJavaFXやってるんだから、上のような書き方が個人的には好み。
JavaFXにももちろんアクセス修飾子があるけど、それはまた今度。