InstanceOf w Javie - Praca i reguły instanceOf w Javie z przykładem

Spisie treści:

Anonim

Wprowadzenie do instanceOf w Javie

instanceOf jest klasą języka programowania Java, która po wywołaniu zwraca wartość logiczną i służy do badania związku między obiektem a klasą / interfejsem. Ze względu na możliwość porównania tych dwóch jest również znany jako „operator porównania typów”. Po prostu instanceOf służy do sprawdzania, czy obiekt jest dowolnego typu, czy nie, i zwraca wartość logiczną, która jest albo prawdą, albo fałszem. InstanceOf jest jednym z pomocnych operatorów w Javie, który pomaga uzyskać przydatne informacje o obiekcie w środowisku wykonawczym.

Składnia:

Klasa instanceOf służy do sprawdzania, czy obiekt należy do dowolnej klasy, czy nie.

obj instanceOf object

Powyżej znajduje się standardowa składnia dla klasy instanceOf. Tutaj obj to nazwa obiektu, który musiał zostać wcześniej utworzony (odwołanie). instanceOf jest słowem kluczowym, a obiekt jest klasą lub interfejsem, z którym dopasowujemy obiekt obj.

W różnych przypadkach instancja InstOf może być bardzo użyteczna, na przykład tam, gdzie mamy kolekcję obiektów i nie jesteś pewien, do którego obiektu się odnosi. Przykładem takiej sprawy może być prosta forma z wieloma kontrolkami.

Ponadto, jeśli użyjemy instanceOf ze zmienną, która ma wartość NULL, na pewno zwróci false.

Jak działa instanceOf?

Operator instanceOf w Javie działa na prostej relacji is-a. Mówiąc wprost, relacja jest relacją obiektową, w której porównujemy lub mówimy, pracujemy nad relacją między abstrakcjami, gdzie klasa A jest podklasą klasy B. Jest to relacja całkowicie oparta na dziedziczeniu. Innymi słowy, to tak, jakby powiedzieć: „X jest typu Y”.

Teraz zrozumiemy działanie instanceOf wraz z odpowiednim kodem.

Najpierw stworzymy klasę o nazwie Parent.

Kod:

Class Parent(
)
Then let's add a simple main class.
public static void main(String args()) (
)

Następnie utworzymy instancję naszej klasy nadrzędnej.

Parent child = new Parent();

Na koniec użyjemy operatora instanceOf do sprawdzenia relacji między dzieckiem a rodzicem. Co wygląda tak: child instanceOf Parent

Teraz, jak wspomniano wcześniej, składnia na przykład instanceO pochodzi od obiektu, który musi zostać sprawdzony, następnie słowo kluczowe instanceOf, a następnie klasa / interfejs, z którym dany obiekt ma być testowany.

W dowolnym momencie, w którym spotykamy się ze słowem kluczowym „przedłuża” lub „implementuje”, w deklaracji klasowej jest to wyraźny znak stosowanej relacji.

Przykłady instanceOf w Javie

Poniższy przykład demonstruje użycie instanceOf w jednym wierszu.

Class instanceof_java(
public static void main(String args()) (
instanceof_java s = new instanceof_java();
System.out.println(s instanceOf instanceof_java);
)
)

Interpretacja kodu: Zacząłem od stworzenia prostej klasy instanceof_java. W klasie instanceof_java mamy naszą klasę główną, a wewnątrz naszej klasy głównej mamy utworzony obiekt. Ten obiekt jest typu instanceof_java. Następnie, aby zaimplementować działanie instanceOf, dostarczyliśmy instrukcję wyjściową z obiektem s. W ostatnim wierszu przekazaliśmy s wraz ze słowem kluczowym instanceof i klasą nadrzędną. Po wykonaniu kod zwróci „true”, ponieważ obiekt s jest typu instanceof.

Idąc dalej, jeśli mamy obiekt naszej znanej klasy lub interfejsu, ale nie przypisaliśmy żadnej wartości temu samemu obiektowi, to zwróci wartość false, nawet jeśli należy do tej samej klasy.

Class instanceof_sample(
public static void main(String args()) (
instanceof_sample new = null;
System.out.println(new instanceOf instanceof_sample);
)
)

Tutaj mamy podobny kod jak w poprzednim przykładzie, ale z obiektem o wartości zerowej. Po uruchomieniu ten kod zwróci false. Jak widzimy, obiekt new jest instancją instancji_próbki, ale nowemu przypisuje się wartość zerową, która zwraca wartość false.

Zasady na przykład operatora

Na podstawie tego, czy obiekt ref nie ma wartości NULL, a instancja określonego typu. Gdy X jest prostą klasą obiektu, do którego się odnosi, a Y jest klasą rozstrzygniętą lub tablicą typu interfejsu.

  • Gdy X jest prostą klasą, to:
  • Jeśli Y jest typem klasy, X musi być podklasą Y lub X musi być tej samej klasy co Y.
  • Jeśli Y jest typem interfejsu, klasa X musi implementować interfejs T.
  • Gdy X jest interfejsem typu, wówczas:
  • Jeśli Y jest typem klasy, Y musi być Obiektem.
  • Y może być taki sam jak interfejs jako X lub super interfejs X, jeśli Y jest typem interfejsu.
  • Jeśli X jest klasą reprezentującą tablicę typu SC (), która jest tablicą komponentów typu SC, to:
  • Jeśli Y jest typem klasy, Y musi być obiektem.
  • Jeśli Y jest typem interfejsu, to Y musi być typu interfejsu zaimplementowanego przez tablice.

Na koniec pokażemy program instanceOf, aby zrozumieć, że obiekt nadrzędny nie może być instancją klasy potomnej.

Program

class Subject ( )
class Topic extends Subject ( )
class instanceof_java
(
public static void main(String() args)
(
Subject history = new Subject ();
if (history instanceof Topic)
System.out.println("history is instance of Topic");
else
System.out.println("history is NOT instance of Topic");
)
)

Interpretacja kodu: W celu zrozumienia operatora instanceOf w różnych scenariuszach napisaliśmy powyższy kod. Stworzyliśmy prosty przedmiot klasy, a następnie inny temat klasy, który rozszerza przedmiot klasy, czyniąc tutaj temat klasy jako dziecko, a temat klasy jako rodzic. Potem kolejna klasa z główną metodą. W ramach głównej metody stworzyliśmy nową instancję klasy nadrzędnej Subject. W pętli IF ELSE sprawdziliśmy stan obiektu instancji za pomocą klasy nadrzędnej Subject. Gdyby warunek został spełniony, zwróciłby „historia jest instancją tematu”, a „historia NIE jest instancją tematu”, jeśli warunek się nie powiedzie.

Po wykonaniu powyższego kodu wynikiem będzie „historia NIE jest wystąpieniem tematu”, co oznacza, że ​​warunek przekazany w JEŻELI nie powiedzie się. Stało się tak, ponieważ próbowaliśmy sprawdzić element nadrzędny „historii” obiektu za pomocą klasy Temat. Wiemy, że Temat klasy stanowi rozszerzenie przedmiotu Temat, co oznacza, że ​​Temat jest podklasą Przedmiotu. A kiedy próbowaliśmy sprawdzić rodzaj historii za pomocą klasy Topic, zwraca false (NOT). Oznacza to, że Obiekt Nadrzędny nie może być instancją klasy.

Wynik:

Wniosek - wystąpienie w Javie

Dowiedzieliśmy się o klasie instanceOf w Javie, która po prostu decyduje, czy obiekt jest danego typu. Zrozumieliśmy, w jaki sposób związek ma wpływ na operator instanceOf. Znany również jako operator porównania, instanceOf opiera się na dziedziczeniu.

Polecane artykuły

Jest to przewodnik po InstanceOf w Javie. Tutaj omawiamy działanie InstanceOf w Javie, reguły z interpretacją kodu. Możesz także zapoznać się z następującymi artykułami, aby dowiedzieć się więcej -

  1. Słowa kluczowe Java
  2. Adnotacje Java
  3. Ściągawka JavaScript
  4. Słowa kluczowe PHP