Σε αυτό το σεμινάριο, θα μάθετε λεπτομερώς για το Java instanceof χειριστή λεπτομερώς με τη βοήθεια παραδειγμάτων.
Ο instanceof
τελεστής στην Java χρησιμοποιείται για να ελέγξει εάν ένα αντικείμενο είναι μια παρουσία μιας συγκεκριμένης κλάσης ή όχι.
Η σύνταξή του είναι
objectName instanceOf className;
Εδώ, εάν το αντικείμενοName είναι μια παρουσία του className, ο χειριστής επιστρέφει true
. Διαφορετικά, επιστρέφει false
.
Παράδειγμα: Java instanceof
class Main ( public static void main(String() args) ( // create a variable of string type String name = "Programiz"; // checks if name is instance of String boolean result1 = name instanceof String; System.out.println("name is an instance of String: " + result1); // create an object of Main Main obj = new Main(); // checks if obj is an instance of Main boolean result2 = obj instanceof Main; System.out.println("obj is an instance of Main: " + result2); ) )
Παραγωγή
Το όνομα είναι μια παρουσία του String: true obj είναι μια παρουσία του Main: true
Στο παραπάνω παράδειγμα, έχουμε δημιουργήσει ένα μεταβλητό όνομα του String
τύπου και ένα αντικείμενο obj της κύριας κλάσης.
Εδώ, χρησιμοποιήσαμε τον instanceof
τελεστή για να ελέγξουμε αν το όνομα και το obj είναι παρουσίες της String
κλάσης και της κύριας τάξης αντίστοιχα. Και, ο χειριστής επιστρέφει και true
στις δύο περιπτώσεις.
Σημείωση : Στην Java, String
είναι μια κατηγορία και όχι ένας πρωτόγονος τύπος δεδομένων. Για να μάθετε περισσότερα, επισκεφθείτε τη συμβολοσειρά Java.
Στιγμιότυπο Java κατά την κληρονομικότητα
Μπορούμε να χρησιμοποιήσουμε τον instanceof
χειριστή για να ελέγξουμε αν αντικείμενα της υποκατηγορίας είναι επίσης μια παρουσία του superclass. Για παράδειγμα,
// Java Program to check if an object of the subclass // is also an instance of the superclass // superclass class Animal ( ) // subclass class Dog extends Animal ( ) class Main ( public static void main(String() args) ( // create an object of the subclass Dog d1 = new Dog(); // checks if d1 is an instance of the subclass System.out.println(d1 instanceof Dog); // prints true // checks if d1 is an instance of the superclass System.out.println(d1 instanceof Animal); // prints true ) )
Στο παραπάνω παράδειγμα, έχουμε δημιουργήσει ένα σκυλί υποκατηγορίας που κληρονομεί από το superclass Animal. Δημιουργήσαμε ένα αντικείμενο d1 της κλάσης Dog.
Μέσα στην έντυπη δήλωση, παρατηρήστε την έκφραση,
d1 instanceof Animal
Εδώ, χρησιμοποιούμε τον instanceof
χειριστή για να ελέγξουμε αν το d1 είναι επίσης ένα παράδειγμα του superclass Animal.
Java instanceof στη διεπαφή
Ο instanceof
χειριστής χρησιμοποιείται επίσης για να ελέγξει εάν ένα αντικείμενο μιας κλάσης είναι επίσης μια παρουσία της διεπαφής που εφαρμόζεται από την κλάση. Για παράδειγμα,
// Java program to check if an object of a class is also // an instance of the interface implemented by the class interface Animal ( ) class Dog implements Animal ( ) class Main ( public static void main(String() args) ( // create an object of the Dog class Dog d1 = new Dog(); // checks if the object of Dog // is also an instance of Animal System.out.println(d1 instanceof Animal); // returns true ) )
Στο παραπάνω παράδειγμα, η κατηγορία Dog εφαρμόζει τη διεπαφή Animal. Μέσα στην έντυπη δήλωση, παρατηρήστε την έκφραση,
d1 instanceof Animal
Εδώ, το d1 είναι ένα παράδειγμα της κατηγορίας Dog. Ο instanceof
χειριστής ελέγχει εάν το d1 είναι επίσης μια παρουσία της διεπαφής Animal.
Σημείωση : Στην Java, όλες οι τάξεις κληρονομούνται από την Object
τάξη. Έτσι, οι παρουσίες όλων των τάξεων είναι επίσης μια παρουσία της Object
τάξης.
Στο προηγούμενο παράδειγμα, αν ελέγξουμε,
d1 instanceof Object
Το αποτέλεσμα θα είναι true
.