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类练习、包装类的理解、基本数据类型转换为包类型