Java VM上で動くJavaのサブセット Semicolonless Java の公式ページ

 Semicolonless Java はJava言語同様に強く型付けされた(strongly typed)言語ですが、java.util.Mapを多用しますし、ジェネリックに型安全にするにも限界がありますので、キャストを多用せざるを得ず、Java言語ほどの型安全性は期待できません。

4.1 プリミティブ型と参照型

 Java言語に準じてプリミティブ型と参照型の区別があります。この点でSemicolonless Java は完全なオブジェクト指向言語ではありません。*1各種型の規定はJava言語に準じます。

4.2 変数

 変数(variable)とは記憶領域のことです。Java言語では7種類の変数がありますが、Semicolonless Java では一部の変数については機能制限がされています。
  • ローカル変数
  • クラス変数
  • インスタンス変数
  • 配列の構成要素
  • メソッド・パラメータ
  • コンストラクタ・パラメータ
  • 例外ハンドラ・パラメータ

4.2.1 ローカル変数 (local variable)

 ローカル変数宣言文によって宣言された変数のこと。

for (int i : new int[]{0}) {
}

 for文により宣言と初期化を行います。宣言されたfor文のブロック内でしか参照できません。複数の変数を用いる場合はfor文を入れ子にして宣言を行います。Semicolonless Java 5.0以降で利用可能です。

4.2.2 クラス変数 (class variable)

 Semicolonless Java ではクラス変数は参照のみ可能となっています。Java APIに規定される既存のクラス変数の参照はできますが、Semicolonless Java で新たにクラス変数を宣言することはできません。

4.2.3 インスタンス変数 (instance variable)

 インスタンス変数についてもJava言語ネイティブのものについては参照のみ可能です。Java APIの規定のクラスを継承することで利用可能となるフィールドが若干あります。

 Semicolonless Java ではクラス宣言をextends java.util.HashMapとして行いますので、this.put()で値の格納を、this.get()で値の参照をすることができます。これがSemicolonless Java でのインスタンス変数となります。

4.2.4 配列の構成要素(array component)

 Java言語に準じます。

4.2.5 メソッド・パラメータ(method parameter)

 メソッドに渡される引数の値に名前を付けるもの。Java言語に準じます。

4.2.6 コンストラクタ・パラメータ(constructor parameter)

 コンストラクタに渡される引数の値に名前を付けるもの。Java言語に準じます。

 Semicolonless Javaではローカル変数の代わりにローカルクラスのコンストラクタ・パラメータを用いることがあります。とくにSemicolonless Java 5.0以前ではfor文によるローカル変数宣言ができないため、ローカルクラスのコンストラクタ・パラメータを多用します。

public class VariableTest {
	public static void main(final String[] args) {
		class Hoge {
			Hoge(int i) {
				// iをローカル変数として使用可能
				if (i == 0) {}
				// final 宣言されていればclass Hoge外の変数を参照可能
				if (args == null){}
			}
		}
		if (null == new Hoge(0)){} // 初期値はここで設定する
	}
}

4.2.7 例外ハンドラ・パラメータ(exception-handler parameter)

 try文のcatch節によって例外がキャッチされる毎に生成されるもの。Java言語に準じます。

コメントをかく


「http://」を含む投稿は禁止されています。

利用規約をご確認のうえご記入下さい

Menu

【メニュー編集】

どなたでも編集できます