すべてのプロダクト
Search
ドキュメントセンター

OpenSearch:Cava の型と変数定義

最終更新日:Aug 22, 2026

Cava は、以下の 2 種類の定義をサポートしています。

変数定義

Cava は、以下の 2 種類の変数定義をサポートしています。

  • ローカル変数

  • クラスメンバー変数

注意:Cava はクラス変数をサポートしていません。クラス変数を定義すると、コンパイルエラーが発生します。詳細については、「Cava の修飾子」をご参照ください。

ローカル変数

数値型の変数

  • int 型のローカル変数 a を定義し、値 10 を割り当てます。

class Example {
    // ...
    int test() {
        int a; // <== 変数 a を宣言
        a = 10;
        return a + 1;
    }
    // ...
}
  • 初期値 10 を持つローカル変数 a を定義します。

class Example {
    // ...
    int test() {
        int a = 10; // <== 変数を定義と同時に初期化
        return a + 1;
    }
    // ...
}

オブジェクト変数

オブジェクト変数を定義した後、new 文を使用して対応するオブジェクトを作成する必要があります。そうしない場合、変数の値は null になります。null 変数にアクセスすると、NullPointerException が発生します。

class Example {
    public double PI;
    Example(double customPI) {
        this.PI = customPI;
    }
    static int main() {
        Example a = new Example(3.1415926); // <== new 文でオブジェクトを作成
        return 0;
    }
}

配列変数

  • 10 個の要素を持つ int 配列 a を定義し、[0..9] で初期化します。

class Example {
    // ...
    int test() {
        int[] a = new int[10]; 
        for (int i = 0; i < a.length; ++i) {
            a[i] = i; 
        }
        return a[0];
    }
    // ...
}
  • 初期化リストを使用して、値 [0..9] を持つ int 配列を定義して初期化できます。コンパイラは配列の長さを自動的に推測します。

class Example {
    // ...
    int test() {
        int[] a = new int[]{0,1,2,3,4,5,6,7,8,9}; 
        return a[0];
    }
    // ...
}
  • オブジェクトの配列を作成します。注意:配列を作成した後、その各要素のオブジェクトも作成する必要があります。

class Example {
    public double PI;
    Example(double customPI) {
        this.PI = customPI;
    }
    static int main() {
        Example[] a = new Example[10]; // オブジェクト配列を作成します。
        for (int i = 0; i < a.length; ++i) {
            a[i] = new Example(3.1415926); // 配列の各要素を初期化します。
        }
        return 0;
    }
}

クラスメンバー変数

クラスメンバー変数の定義と使用方法の詳細については、「Cava のクラスとオブジェクト」をご参照ください。

組み込み型

Cava は以下の組み込み型を提供します。括弧内の値は、その型のメモリサイズを示します。

  • ブール型 (1 バイト)

  • byte (1 バイト)

  • char (2 バイト)

  • short (2 バイト)

  • int (4 バイト)

  • long (8 バイト)

  • フロート (4 バイト)

  • double (8 バイト)

なお、char 型は固定長 2 バイトの内部エンコーディングを使用します。このエンコーディングは Java の UTF-16 エンコーディング形式に似ていますが、char 型自体は可変長ではありません。

型変換

ほとんどの言語と同様に、組み込みの数値型は変換できます。コンパイラは、必要に応じて数値型間の変換を実行するコードを挿入します。

互換性のある型の自動変換

ソース型とターゲット型に以下の関係がある場合:

  • ターゲット型の数値範囲が、ソース型の数値範囲を含みます。これは主に整数型に適用されます。

  • ソース型からターゲット型に変換しても、数値の精度は損なわれません。これは主に浮動小数点型に適用されます。

short から int、または float から double への変換といった特定の変換は安全です。コンパイラは、これらの変換を実行するコードを自動的に挿入します:

float a = 3.14f;
double b = a;

short c = -1;
int d = c;

Cava は、Java や C++ などの他の一般的なプログラミング言語と同じ型変換ルールに従います。

明示的な型キャスト

一部の数値型の変換では、精度の損失や範囲の不一致が発生する可能性があります。このような場合、コンパイラはエラーを出力します。例:

double a = ...;
float b = a; // エラー、精度の損失のリスク

これらの変換は一般的に安全ではないため、コンパイラは自動的には実行しません。ただし、関連するリスクを理解している場合は、コードで明示的な型キャストを使用してコンパイラエラーを抑制することができます。

float a = 3.14f;
int b = (int)a; // 小数部は破棄されます。整数部のみが残ります。これにより、数値が切り捨てられます。

ユーザー定義型

Cava は、クラスの定義とオブジェクトの使用をサポートしています。詳細については、「Cava のクラスとオブジェクト」をご参照ください。