Hoe het type klasse in Java te controleren?

Ik ben een nieuweling in Java. Ik heb een klassegeschreven met een methode die het object controleert type. Ik deed mijn eerste zoekopdracht in Google en het was moeilijk om de online beschikbare artikelen te begrijpen. Ik zou alle hulp op prijs stellen. Ik weet dat de regel if(Object == hond)niet werkt. Hoe zou ik dit kunnen oplossen?

public class dog {
    private String name;
    private String rasa;
    private int waga;
    public dog(String name, String rasa, int waga) {
        this.name = name;
        this.rasa = rasa;
        this.waga = waga;
    }
    public void printdog()
    {
        System.out.println(this.name);
        System.out.println(this.rasa);
        System.out.println(this.waga);
        if(Object() == dog)
        {
            System.out.println("dunno how to woof");
        }
    }
}

Antwoord 1, autoriteit 100%

this.getClass() geeft de klasse van het object terug.

Instance of geeft aan of het van dit type is. Met andere woorden: hond is een instantie van een dier, een hond is ook een instantie van een hond.


Antwoord 2, autoriteit 50%

U kunt het sleutelwoord instanceofgebruiken om het type object in Java te controleren.

Bijvoorbeeld:

public class Stack  
{
    public Stack() {
}
public static void main(String[] args){
  Stack s1 = new  Stack();
  System.out.println(s1 instanceof Stack);
}
}

In je code kun je zoiets als dit doen:

if(this instanceof dog)
    {
        System.out.println("dunno how to woof");
    }

Other episodes