0

配列の同じタイプの宣言は、外側の場合はエラーを表示しますmain()が、内側の場合はエラーなしで準拠しますmain():

public class Array {
    int arr1[];
    arr1 = new int[10]; // shows <identifier> expected error

    public static void main(String args[]){
        int arr2[];
        arr2 = new int[10];
    }
}
4

4 に答える 4

0

これは、次のように 1 行で実行できます。

int arr1 = new int[10];

複数のステートメントが必要な場合は、メソッド、コンストラクター、または初期化ブロック内にコードを配置する必要があります。

于 2013-08-20T09:07:19.693 に答える
0

どの Java クラスでも、最初の部分は宣言部分です。オブジェクトを宣言するために使用されます。

変数への値の割り当て、数学演算の実行など、指定された操作のコードは含まれていません。

ここで配列を初期化していますarr1

arr1 = new int[10];

関数の外。本当に初期化を行いたい場合は、このように行うことができます

int arr1 = new int[10];

作成時に配列を初期化します。それ以外の場合は、任意のメソッド内で初期化できます。メイン関数にする必要はありません。

関数は実行する必要があるコードのセットであり、クラスはオブジェクトと関連する関数のグループであるためです。

public class Array {
    int arr1[];

    public String anyFunction(){
        arr1 = new int[10];
    }
}

クラスの詳細については、こちらをご覧ください。

于 2013-08-20T09:41:59.277 に答える
0

クラス変数に値を割り当てたい場合は、定義時に行う必要があります

private int arr1 = new int[10];

またはメソッド内(「main」など)。

public class TestClass {
   // When you want to use the variable inside a static function, arr1 should be declared as static
   private static int arr1[] = new int[10];

   public static void main(String args[]) {
      arr1 = new int[10];
   }
}

クラス/メンバー変数の基本については、こちらをお読みください。

于 2013-08-20T09:11:26.160 に答える
0

ステートメントであることが判明するため、別の行で宣言すると機能しません。ステートメントは、静的ブロック、メソッド、およびコンストラクターでのみ許可されます。

これはフィールド宣言であるため、これは正常に機能します

int a[]= {1,2,3};
int a[]=new int[]{1,3,4,5};

これらは非静的フィールドであるため、オブジェクトを使用してこれらにアクセスすることをお勧めします。

于 2013-08-20T09:26:56.250 に答える