关于java中重写.equals()方法的问题

查看:68
本文介绍了关于java中重写.equals()方法的问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

 if (getClass() != o.getClass()) {
            return false;
 }
       

关于if判断中的条件,等号后是o对象调用Object类中getClass()方法,而前者,是谁对Object类中的getClass()方法进行调用呢?这里为什么不需要写this.getClass()呢?

解决方案

是当前对象的 getClass()方法。
在当前对象内使用当前对象的方法或者属性可以忽略 this,除非有参数名重复,才需要特别指定 this

class Demo {
    private String id;
    private String name;
    
    public Demo(String id, String name){
       this.id = id; // 参数与字段名重复,所以需要指定 this
       this.name = name;
    }
    
    public Demo(String username) {
       name = username; // 这里的name 就是当前对象的name
       id = getClass().toString(); //  这里的 getClass() 也是当前对象的getClass() 方法
    }   
}

这篇关于关于java中重写.equals()方法的问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆