ビデオ: 【Javaプログラミング講座/オブジェクト指向 #5】継承②(継承とコンストラクタ/オーバーライド/protected/toStringメソッド) ※1.5倍速での再生を推奨 2024
JavaのA ジェネリッククラス は、コンパイル時にプログラマが指定した特定の型時間。これを達成するために、クラス定義は型(intやStringなど)を表す変数として動作する 型パラメータ s を使用します。
ジェネリッククラスを作成するには、クラス名の後ろにtypeパラメータを山括弧で囲みます。 typeパラメータは、クラス全体で使用できる名前を指定します。それ以外の場合は、型を使用します。たとえば、ArrayListクラスのクラス宣言の簡略化されたバージョンを次に示します。
<!パブリッククラスArrayList私は、型と型のパラメータに焦点を当てるためにextendsとimplements節を除外しました:。 Eパラメーターは、リストに保管されているエレメントのタイプを指定します。
ジェネリッククラスのインスタンスを作成するには、typeパラメータの代わりに使用される実際の型を提供する必要があります。例:
ArrayList myArrayList;
ここでEパラメータはStringであるため、ArrayListクラスのこのインスタンスの要素型はStringです。
<! ArrayListクラスのaddメソッドの宣言を見てください:
public boolean add(E o){//メソッドの本体が省略されました(ありがとうございます)}通常、パラメータ型を参照すると、文字Eが表示されます。したがって、このメソッド宣言では、oパラメータの型が仮型パラメータEに指定された型であることを指定します.EがStringの場合、addメソッドはStringオブジェクト。 Stringパラメータ以外のものを渡すaddメソッドを呼び出すと、コンパイラはエラーメッセージを生成します。
<! - 3 - >
戻り値の型として型パラメータを使用することもできます。
public E get(int index){//省略されたメソッド本体(歓迎)}ここでは、Eが戻り値の型として指定されています。つまり、EがStringの場合、このメソッドはStringオブジェクトを返します。
ジェネリックの主な利点は、コンパイル時に型チェックが行われることです。したがって、仮の型パラメーターの値を指定した後、コンパイラーは、パラメーターが暗黙指定している型チェックを行う方法を知っています。これは、StringオブジェクトをEmployeeコレクションに追加できないことを知っている方法です。