Java instanceof (Με παραδείγματα)

Σε αυτό το σεμινάριο, θα μάθετε λεπτομερώς για το 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.

ενδιαφέροντα άρθρα...