Java >> Java tutorial >  >> Java

Java-forekomst af | Sammenligning Operatør med Hvordan man bruger eksempel

J ava-instans af operatør bruges til at kontrollere, at objektet er en instans af den angivne type (klasse eller underklasse eller grænseflade). Når du bruger Instnaceof-operatoren til sammenligning, vil den returnere en boolsk værdi enten Ture eller False.

Java-instans af operatør, også kendt som en sammenligningsoperatør. Fordi den sammenligner instansen med typer.

Syntaks:

Instanceof-operator bruges kun til objektreferencevariabler. Syntaksen for skrevet som −

( Object reference variable ) instanceof (class/interface type)

Java-eksempel

Et simpelt eksempel var at oprette en forekomst (objekt) af klassen og derefter kontrollere den med klassen. Se nedenstående kode og eksempel.

class Hello {

    public static void main(String[] args) {
        // Creating object/Instance
        Hello hello = new Hello();
        //Check weather instance of Hello class or not
        System.out.println(hello instanceof Hello);

    }
}

Output: sandt

Et andet eksempel

Lad gøre denne gang Arv og kontroller, om en underklasse Forekomst af superklasse eller ej.

class Vehicle {
    void maxSpeed(){
    }
}

public class Bike extends Vehicle{
    public static void main(String arg[]) {
        Bike bike = new Bike();

        System.out.print("Is bike instance of Vehicle - ");
        // checking Is bike instance of Vehicle class
        System.out.println(bike instanceof Vehicle);
    }
}

Output :Er cykelforekomst af Vehicle – sand

Et eksempel mere

Denne gang kontrollerer vi, at det overordnede objekt ikke er en forekomst af barnet. Til det bruger vi ovenstående samme eksempel og ændrer kun ved at oprette et objekt af forældreklassen.

class Parent {
}

class Child extends Parent {
}

class Test {
    public static void main(String[] args) {
        Parent parentObject = new Parent();

        // Checking instance or not
        if (parentObject instanceof Child)
            System.out.println("Parent Object is instance of Child");
        else
            System.out.println("Parent Object is NOT instance of Child");

        System.out.println(parentObject instanceof Child);
    }
}

Output: Forældreobjekt er IKKE en instans af et barn
falsk

Sammenligningsoperatør

Standard sammenligningsoperatorerne arbejder for primitive værdier som int, double, char osv. Og operatorerne ==og !=kan bruges til at sammenligne objektreferencer. For at se en sammenligning mellem et objekt (instans) kan du bruge en instans af Comparison Operator.

Spørgsmål:Hvad er forskellen mellem instanceof-operatoren og isInstance()-metoden i Java?

Svar :En både instans af operatør og isInstance() metode  bruges til at teste, om instansen(objektet) tilhører den angivne type eller ej.

Men der er en forskel, der kommer, når du vil kontrollere klassen af ​​objekter dynamisk. I dette tilfælde isInstance() metode vil arbejde. Otherside med instanceof operatør ingen måde at gøre dette på.

Endnu en lighed har begge returneret en boolsk værdi - Ture eller False.

Spørgsmål:Hvad er Java-forekomsten af ​​ydeevne?

Svar :I mange tilfælde er der bedre OOP-måder til at opnå den ønskede adfærd. Det afhænger af koden og JVM-versionen.

Kommenter, hvis du har forslag og tvivl om denne vejledning.


Java tag