[AVA]オブジェクト配列&instanceof
📝 オブジェクト配列
集団化できる.
一般的なデータ型の配列とオブジェクト配列の比較
作成
- 일반 데이터형의 배열
int[] data = new int[3];
- 객체 배열의 경우
Army[] data = new army[3];
- 일반 데이터 형 배열의 경우
data[0] = 10;
data[1] = 20;
data[2] = 35;
- 객체 배열의 경우
Army a1 = new Army();
data[0] = new Army();
data[1] = new Army();
data[2] = new Army();
オブジェクト配列は、「new」を使用してオブジェクトを割り当てる必要があります.
オブジェクト配列の使用
子クラスのオブジェクトを親クラスの配列
列に入れることができます.
Unit[] unit = new Unit[3];
// 배열의 요소 할당과정에서 암묵적 형변환이 이루어진다.
unit[0] = new Army();
unit[1] = new Navy();
unit[2] = new AirForce();
instanceof演算子
オブジェクトタイプをチェックする演算子
明示的な変換が必要です.
しかし,最初の要素が最初にどのクラスから生成されたかを判断するのは難しい.
ブール型は結果を返すことができます.
class Parent{}
class Child extends Parent{}
public class Main {
public static void main(String[] args) {
Parent p = new Parent();
Child c = new Child();
System.out.println(p instanceof Parent);
System.out.println(p instanceof Child);
System.out.println(c instanceof Parent);
System.out.println(c instanceof Child);
}
}
👉 実行結果true
false
true
true
オブジェクト配列とサンプルコード-<オブジェクト変換文書のコードを参照>public class Main {
public static void main(String[] args) {
// 부대지정
Unit[] units = new Unit[5];
units[0] = new AirForce("공군1호");
units[1] = new AirForce("공군2호");
units[2] = new Navy("해군1호");
units[3] = new Army("육군1호");
units[4] = new Army("육군2호");
// 부대 일괄 공격 attak();
for (int i = 0; i < units.length; i++) {
units[i].attack();
// 각 기능의 고유한 기능 호출
if (units[i] instanceof Army) {
Army temp1 = (Army)units[i];
temp1.tank();
}
if (units[i] instanceof Navy) {
Navy temp2 = (Navy)units[i];
temp2.nucleus();
}
if (units[i] instanceof AirForce) {
AirForce temp3 = (AirForce)units[i];
temp3.bombing();
}
System.out.println("-----------------------------");
}
}
}
👉 実行結果공군1호 >>> 공격준비
공군1호 >> 이륙
공군1호 >> 공중공격 실행
공군1호 >> 폭격
-----------------------------
공군2호 >>> 공격준비
공군2호 >> 이륙
공군2호 >> 공중공격 실행
공군2호 >> 폭격
-----------------------------
해군1호 >>> 공격준비
해군1호 >> 어뢰발사
해군1호 >> 지상 상륙
해군1호 >> 핵미사일
-----------------------------
육군1호 >>> 공격준비
육군1호 >> 지상공격 실행
육군1호 >> 탱크공격
-----------------------------
육군2호 >>> 공격준비
육군2호 >> 지상공격 실행
육군2호 >> 탱크공격
-----------------------------
Reference
この問題について([AVA]オブジェクト配列&instanceof), 我々は、より多くの情報をここで見つけました https://velog.io/@hyun_ha/JAVA-객체-배열-instanceofテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol