Java学习第二十一天

一、今天干了什么

1.Object类

 

Object类是所有Java类的根父类,如果在类的声明中没有使用extends关键字指明其父类,则默认父类为java.lang.Object。

其中的功能和属性具有通用性

其构造器只有一个空参的构造器

 

2.euals()的用法

 

是一个方法,而不是运算符。

只能适用于引用数据类型

 

作用:“equals()”比较字符串中所包含的内容是否相同

 

Object类中定义的equals方法和==作用相同,即比较地址是否相同。

String、Date、File、包装类等都重写了Object类中的equals()方法。重写以后比较的不是两个引用的地址是否相同,而是比较两个对象的实体内容是否相同。

 

3.equals重写

 

目的:比较两个对象的实体内容是否相同

 

原则:

(1)自反性:对于任何非空引用值 x,x.equals(x) 都应返回 true。
(2)对称性:对于任何非空引用值 x 和 y,当且仅当y.equals(x) 返回 true 时,x.equals(y) 才应返回 true。
(3)传递性:对于任何非空引用值 x、y 和z,如果 x.equals(y) 返回 true,并且 y.equals(z) 返回 true,那么 x.equals(z) 应返回 true。
(4)一致性:对于任何非空引用值 x 和 y,多次调用 x.equals(y) 始终返回 true 或始终返回4、一致性:对于任何非空引用值 x 和 y,多次调用 x.equals(y) 始终返回 true 或始终返回false,前提是对象上 equals 比较中所用的信息没有被修改
对于任何非空引用值 x,x.equals(null) 都应返回false。

public boolean equals(Object obj)
{
    if(this == obj)
    {
       return true;
    }
    
    if(obj instanceof Customer)
    {
       Customer cust = (Customer) obj;
       return this.age == cust.age && this.name.equals(cust.name);
     }
    else
    {
       return false;
    }

}

 

4.equals()和==的区别

(1)==既可以比较基本类型也可以比较引用类型。对于基本类型就是比较值,对于引用类型就是比较内存地址。

(2)equals如果没有被重写,它就与==作用相同。在String等类中它被重写过,具体用法要看有没有重写来判断。一般都会用来比较类中的各项属性是否相同。

二、明天干什么

toString()方法的使用、Object类练习、包装类的理解、基本数据类型转换为包类型

posted @ 2021-07-28 16:47  闫闫不是那个严  阅读(21)  评论(0编辑  收藏  举报