java中的instanceof关键字

版权声明:本文为转载文章,原文链接:https://blog.csdn.net/qq_38663729/article/details/78022990

Java 中的instanceof 运算符是用来在运行时指出对象是否是特定类的一个实例。instanceof通过返回一个布尔值来指出,这个对象是否是这个特定类或者是它的子类的一个实例。

instanceof关键字的作用是判断一个对象是否是一个具体类的实例,我们在重写equals方法中要先判断是否是同一对象,之后再判断一个对象是否是另一个的实例,如果是判断各个属性值以判断是否是同一对象,不是一定不是同一对象。

下面是String中equals的方法源码:


也是先判断是否为同一对象,利用instanceof关键字判断是否是String的实例(任何字符串都是String的实例),如不是对字符串中每个字符进行比较

下面是instanceof的简单举例:

package dmeo_1;
 
public class Student extends Person{
    
    public static void main(String[] args) {
 
        if ("a" instanceof String) {
            //所有的字符串都是String的实例
            System.out.println("字符串是String的实例");
        }
 
        //只是声明了对象并没有创建,所以instanceof判断是false
        Student s1 = null;
        Student s2 = null;
        if (s1 instanceof Student) {
            System.out.println("s1是Student的实例");
        }
        if (s2 instanceof Student) {
            System.out.println("s2是Student的实例");
        }
 
        //创建了对象实例,判断为true
        s1 = new Student();
        s2 = new Student();
        if (s1 instanceof Student) {
            System.out.println("s1是Student的实例");
        }
        if (s2 instanceof Student) {
            System.out.println("s2是Student的实例");
        }
 
        /*任何类的父类都是Object类,可以这样理解,我们在创建子类对象的时候,
        调用子类的构造方法时会默认调用父类无参的构造方法,其实是会创建父类的对象的,,有继承关系的可以判断出为true*/
        if (s1 instanceof Object) {
            System.out.println("s1是Object的实例");
        }
 
        Object obj = new Student();
        if (obj instanceof Student) {
            System.out.println("obj是Student的实例");
        }
 
        Student s3 = new Student();
        if (s3 instanceof Person) {
            System.out.println("s3是Student的父类Person的实例");
        }
    }
}
 
class Person{
 
}

输出:

字符串是Stringde实例
s1是Student的实例
s2是Student的实例
s1是Object的实例
obj是Student的实例
s3是Student的父类Person的实例

--------------------- 
作者:In_new 
来源:CSDN 
版权声明:本文为转载文章,原文链接:https://blog.csdn.net/qq_38663729/article/details/78022990

全部评论

相关推荐

屌丝逆袭咸鱼计划:心态摆好,man,晚点找早点找到最后都是为了提升自己好进正职,努力提升自己才是最关键的😤难道说现在找不到找的太晚了就炸了可以鸡鸡了吗😤早实习晚实习不都是为了以后多积累,大四学长有的秋招进的也不妨碍有的春招进,人生就这样
点赞 评论 收藏
分享
昨天 14:37
门头沟学院 Java
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务