5.1.2アレイ-2の作成

10312 ワード

ステップ3のタイルデータ型変数にオブジェクトを代入する
作成したオブジェクトを宣言された配列参照型変数に置き換えたり、変数宣言と値(参照型はオブジェクト)を一度に作成したり、個別に作成したりする方法は2つあります.
🥨オブジェクトを配列データ型変数に置換
  • 資料型[]変数名=新資料型[配列長]
  • int[] a = new int [3];
  • 資料型[]変数名;
    変数名=new資料型[配列長さ];
  • int[] a;
    a = new int[3];
    配列を宣言しながら値を入力するサンプルコードの最初のコードをより詳細に見てみましょう.まずint[]はintデータ型のみを格納できる配列を表す.a参照変数で実データ値を格納するのではなく、実データ値のシフト値を格納する.newキーワードはhipメモリにオブジェクトを格納することを意味し、int[3]は3つの整数を格納できる空間を作成することを意味する.これは、hipメモリに3つのintデータ型を格納できる空間を配置し、参照変数aに配置することを意味する.

    メモリ構造は次のとおりです.

    ここで理解する必要があるのは、初期化値を除いてスタックメモリ領域が空であることです.もちろん、この変数を出力するとエラーが発生します.逆に,Hip Memoryはいずれの場合も空きスペースが存在しない.したがって、値を与えないと、コンパイラは値を強制的に初期化します.上の図に示すように、配列の空間初期化はゼロであることがわかります.強制初期化値は、データ型によって異なり、デフォルトのデータ型では0(実数0.0)、ブール値でfalse、その他のすべての参照データ型でnullに初期化されます.強制初期化は後で説明しますが、ここではhipメモリのすべての値が強制的に初期化されることを覚えておくだけです.
    +)参照変数にオブジェクトの位置を格納する理由
    newキーを使用してオブジェクトを作成すると、Java仮想マシンはhipメモリの空き領域にオブジェクトを作成します.HIPメモリの空き容量は常に異なるため、オブジェクトを作成するたびに異なる場所に格納できます.そのため、開発者はJava仮想マシンが作成したオブジェクトの場所を知る必要があります.例えば、無人のロッカーで物を運ぶとき、届く人が物を置くロッカーの番号を教えてくれたときだけ、すぐに物を取り出すことができます.

    実習

            // 배열의 선언 방법 1 - 자료형 뒤에 대괄호 표기
            int[] array1 = new int[3];
            int[] array2;
            array2 = new int[3];
    
            //배열의 선언 방법 2 - 변수명 뒤에 대괄호 표기
            int array3[] = new int[3];
            int array4[];
            array4 = new int[3];
    
            //다양한 배열 선언(기본 자료형 배열, 참조 자료형 배열)
            boolean[] array5 = new boolean[3];
            int[] array6 = new int[5];
            double[] array7 = new double[7];
            String[] array8 = new String[9];
    
    ステップ4のオブジェクトに値を入力
    次に、作成したオブジェクトに値を入力する方法を見てみましょう.配列内の各格納可能な値の空間には、インデックスと呼ばれる部屋番号があります.インデックスは0から1ずつ増加します.たとえば、3つの部屋がある場合、部屋番号、すなわちインデックスは0、1、2です.インデックスを使用して各ストレージスペースに値を割り当てる方法は、次のとおりです.
    🥨タイルオブジェクトに値を付ける
    参照変数名[インデックス]=値;
    int[] a = new int[3];
    
    a[0] = 3;
    a[1] = 4;
    a[2] = 5;
    初期配列を宣言しながらオブジェクト(int[]a=new int[3])を作成すると、hipメモリのすべての値が初期化されます.このとき,配列のデータ型は整数であるため,初期化値は0である.


    値を読み込むときにインデックスも使用します.
    🥨配列オブジェクト値の取得
    参照変数名[インデックス];
    System.out.println(a[0]); // 3
    System.out.println(a[1]); // 4
    System.out.println(a[2]); // 5
    配列のストレージスペースに値を代入したり、インデックスなしを使用したりすると、例外が発生し、プログラムが終了します.
    System.out.println(a[2]); // 5 출력
    System.out.println(a[-1]); // 예외 발생
    System.out.println(a[3]); // 예외 발생