Operator instanceof Java: Panduan Lengkap
Java instanceof Operator: Panduan Lengkap
Jelajahi bagaimana operator instanceof Java bekerja, dengan contoh yang jelas mencakup penggunaan dasar, pewarisan, dan antarmuka.
Di Java, operator instanceof memungkinkan Anda memverifikasi apakah sebuah objek termasuk dalam kelas atau antarmuka tertentu. Ini mengembalikan true jika tipe runtime objek cocok dengan tipe yang ditentukan, jika tidak false.
objectName instanceof className;
Di bawah ini adalah contoh sederhana yang mendemonstrasikan operator dengan sebuah String dan kelas yang ditentukan pengguna.
Contoh: Penggunaan Dasar instanceof
class Main { public static void main(String[] args) { String name = "Programiz"; boolean result1 = name instanceof String; System.out.println("name adalah instance dari String: " + result1); Main obj = new Main(); boolean result2 = obj instanceof Main; System.out.println("obj adalah instance dari Main: " + result2); } }
Output
name adalah instance dari String: true obj adalah instance dari Main: true
Kedua pemeriksaan mengembalikan true karena name memang sebuah String dan obj adalah instance Main.
Catatan: Di Java, String adalah tipe referensi, bukan primitif.
Menggunakan instanceof dengan Pewarisan
Operator ini sangat berharga saat bekerja dengan hierarki polimorfik. Ini mengonfirmasi bahwa instance subclass juga memenuhi tipe superclass-nya.
// Superclass class Animal {} // Subclass class Dog extends Animal {} class Main { public static void main(String[] args) { Dog d1 = new Dog(); System.out.println(d1 instanceof Dog); // true System.out.println(d1 instanceof Animal); // true } }
Seperti yang ditunjukkan, d1 dikenali baik sebagai Dog maupun Animal, mencerminkan model pewarisan Java.
Menggunakan instanceof dengan Antarmuka
instanceof juga memeriksa apakah sebuah objek mengimplementasikan antarmuka tertentu.
interface Animal { } class Dog implements Animal { } class Main { public static void main(String[] args) { Dog d1 = new Dog(); System.out.println(d1 instanceof Animal); // true } }
Di sini, d1 adalah Dog yang mengimplementasikan Animal, jadi operator mengembalikan true.
Catatan: Setiap kelas Java pada akhirnya memperluas java.lang.Object. Oleh karena itu, setiap objek juga merupakan instance dari Object. Misalnya:
d1 instanceof Object
Ini akan selalu dievaluasi sebagai true.