こんにちは。たいら(@tairaengineer2)です。
転職を繰り返し現在4社経験している、10年目エンジニアです。
この記事では、 Javaでインスタンスのクラスを確認できるinstanceof演算子について
- instanceof演算子とは
- instanceof演算子を使ったサンプルプログラム
と、この記事で丁寧に解説していきます。
前提条件:実行環境について
実行環境は以下の通りです。
OS | Windows10 |
---|---|
IntelliJ IDEAのエディション | Community(無料版) |
IntelliJ IDEAのバージョン | 2021.3.2 |
プロジェクト | Javaプロジェクト |
SDK | Oracle OpenJDK version17.0.2 |
Javaを動かすためにIntelliJ IDEAを使っています。
IntelliJ IDEAのインストールは、下の記事をご参考ください。
instanceof演算子とは
instanceof演算子とは、インスタンスが指定したクラスまたはインターフェイスを実装しているかどうかを判定して結果をbooleanで返す演算子のことです。
instanceof演算子の使い方は以下になります。
1 |
【変数名】 instanceof 【判定したいクラスorインターフェイス】 |
返るbooleanは以下にまとめました。
true |
|
---|---|
false | 上記以外 |
サンプルは以下です。
1 2 |
String sample = "サンプル"; boolean result = sample instanceof String; |
上記のサンプルだと変数resultには、trueが返されます。
では、次の章で実際に使ってみます。
instanceof演算子を解説するプログラムの概要
instanceof演算子を解説するプログラムでは、親子関係のクラスを用意します。
それぞれのクラスのインスタンスを作り、instanceof演算子で判定して実行結果を確認します。
解説で使うJavaプログラムは、Sampleプロジェクトのsampleパッケージ内にある、とします。
Javaサンプルプログラム
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
package sample; public class Sample { public static void main(String[] args){ Parent parent = new Parent(); Child child = new Child(); System.out.println("■親のクラス判定"); if (parent instanceof Parent) { System.out.println("parentはParentクラスである"); } else { System.out.println("parentはParentクラスでない"); } if (parent instanceof Child) { System.out.println("parentはChildクラスである"); } else { System.out.println("parentはChildクラスでない"); } System.out.println("■子のクラス判定"); if (child instanceof Parent) { System.out.println("childはParentクラスである"); } else { System.out.println("childはParentクラスでない"); } if (child instanceof Child) { System.out.println("childはChildクラスである"); } else { System.out.println("childはChildクラスでない"); } } } /** * Parentクラス(親) */ class Parent { } /** * Childクラス * Parentを継承 */ class Child extends Parent{ } |
実行結果
Javaプログラムを実行します。
実行のやり方は
- プログラムを右クリックして実行
- 実行タブから実行
- ガターから実行
の3種類あるので、いずれかで実行します。
詳しい解説は以下の記事をご参考ください。
1 2 3 4 5 6 |
■親のクラス判定 parentはParentクラスである parentはChildクラスでない ■子のクラス判定 childはParentクラスである childはChildクラスである |
子クラスだと親と子のクラス両方、親クラスだと親のクラスのみでtrueが返されていることが確認できました。
まとめ:instanceofを使ってみよう!
以上がJavaのinstanceof演算子についての解説でした!
あなたのご参考になったのなら、とても嬉しいです(*´▽`*)
ではでは~(・ω・)ノシ
コメント