Instanceof adalah operator biner di java, dan ==,>, dan <adalah jenis hal yang sama. Karena terdiri dari huruf, itu juga merupakan kata kunci yang dipesan di Java. Fungsinya adalah untuk menguji apakah objek di sebelah kirinya adalah instance dari kelas di sebelah kanannya dan mengembalikan data tipe boolean. Misalnya:
Salinan kode adalah sebagai berikut:
String s = "Saya objek!";
boolean isObject = s instance dari objek;
Kami mendeklarasikan referensi objek string, menunjuk ke objek string, dan kemudian menggunakan Instancof untuk menguji apakah objek yang ditunjukkannya adalah instance dari kelas objek. isObject itu benar.
Instance dari memiliki beberapa kegunaan. Misalnya, kami menulis sistem untuk menangani tagihan, yang memiliki tiga kategori:
Salinan kode adalah sebagai berikut:
Bill kelas publik {// hilangkan detail}
PUBLIK PUBLIK PHONEBILL EXTENDS BILL {// OMIT Detail}
Gasbill kelas publik memperluas tagihan {// hilangkan detail}
Ada metode di pawang untuk menerima objek jenis tagihan dan menghitung jumlahnya. Asumsikan bahwa dua metode perhitungan RUU berbeda, dan objek tagihan yang masuk mungkin salah satu dari dua, jadi gunakan contoh untuk menilai:
Salinan kode adalah sebagai berikut:
PUBLIK PUBLIK Hitung (RUU RUU) {
if (instance bill phoneBill) {
// Hitung tagihan telepon
}
if (instance tagihan gasbill) {
// Hitung tagihan gas
}
...
}
Dengan cara ini, dua subclass dapat diproses dalam satu metode.
Namun, pendekatan ini sering dianggap sebagai kegagalan untuk mengambil keuntungan dari polimorfisme yang berorientasi objek. Bahkan, fungsi di atas mensyaratkan bahwa kelebihan metode dapat dicapai sepenuhnya. Cukup berikan dua nama dan nilai pengembalian dan terima metode dengan jenis parameter yang berbeda:
Salinan kode adalah sebagai berikut:
PUBLIK PUBLIK Hitung (tagihan phoneBill) {
// Hitung tagihan telepon
}
Publik Double Calculate (GasBill Bill) {
// Hitung tagihan gas
}