「こんにちは、アミーゴ! あなたはすでにinstanceof演算子を知っています。今日はそれがどこでどのように使用できるかを説明します。instanceofは非常にシンプルで効率的な演算子です。」
「広告っぽいですね!」
「実際は非常に簡単です。次のように使用します: «object» instanceof «class»。」
オブジェクトが特定のクラスのインスタンスであるかどうかをチェックします。説明するよりも簡単です。この例を見てください。
コード | 説明 |
---|---|
|
isInt はtrueになります。変数 o によって参照されるオブジェクトは、Integerクラスのインスタンスです。 |
|
isInt はfalseになります。変数 o によって参照されるオブジェクトは、Integerクラスのインスタンスではありません。Stringオブジェクトです。 |
|
isFIS はtrueになります。変数 o によって参照されるオブジェクトは、FileInputStreamクラスのインスタンスです。 |
「はい、それはとても簡単です。」
「この演算子は継承も考慮しています。確認してください。」
コード | 説明 |
---|---|
|
ここには、Animal、Cat、Tiger の 3 つのクラス宣言があります。猫は動物を継承します。そしてタイガーはキャットを引き継ぎます。 |
|
isCat はtrue になります 。 isTiger はtrue になります 。 isAnimal はtrue になります 。 |
|
isCat はfalse になります。 isTiger はfalse になります 。 isAnimal はtrue になります 。 |
さらにはインターフェイスも:
コード | 説明 |
---|---|
|
2 つのクラスを作成します: Cat、TomCat、および Moveable インターフェイス |
|
isCat はtrue になります 。 isMoveable はtrue になります 。 isTom はtrue になります 。 |
|
isCat はtrue になります 。 isMoveable はfalse になります 。 isTom はfalse になります 。 |
instanceof 演算子は、次のようになります: instanceof B。
つまり、instanceof演算子は、次の場合にtrueを返します。
1)変数aには、タイプBのオブジェクトへの参照が格納されます。
2) 変数a は、クラスがBを継承するオブジェクトへの参照を格納します。
3) 変数a には、インターフェイスBを実装するオブジェクトへの参照が格納されます。
それ以外の場合、instanceof演算子はfalseを返します。
「分かった。では、なぜこれが必要なのですか、リシおじさん?」
「今日はエリーがそれについてお話します。このオペレーターは本当に素晴らしいです。今日ならきっと納得していただけるでしょう。」
GO TO FULL VERSION