java基础-面向对象-Object类-equals ,-toString ,内部类(五)

通常equals,toString,hashCode,在应用中都会被复写,建立具体对象的特有的内容。 

class Demo
{
    private int num;
    
    public void Demo()
    {
        this.num = num;
    } 
    
    public boolean equals(Object obj)//  Object obj = new Demo(3);  //此处使用了多态
    {   
        if(!(obj instanceof Demo))
           return false;

            Demo d = (Demo)obj;  //把父类 向下转型,强制转成子类,这样才能使用子类里的成员量 
                                 //或成员函数
           return this.num==d.num;
         
    }
}


public static void main(String[] args)
{
    
    Demo d1 = new Demo(3);
    Demo d2 = new Demo(4);
    
    System.out.println(d1.equals(d2));
        
}

2,String toString():将对象变成字符串;默认返回的格式:类名@哈希值 = getClass().getName() + '@' + Integer.toHexString(hashCode())

  为了对象对应的字符串内容有意义,可以通过复写,建立该类对象自己特有的字符串表现形式。

  public String toString(){

      return "person : "+age;

  }

3,Class getClass():获取任意对象运行时的所属字节码文件对象。

4,int hashCode():返回该对象的哈希码值。支持此方法是为了提高哈希表的性能。

通常equals,toString,hashCode,在应用中都会被复写,建立具体对象的特有的内容。

发布了311 篇原创文章 · 获赞 58 · 访问量 28万+

猜你喜欢

转载自blog.csdn.net/qq_30353203/article/details/102951524