Object类中只声明了一个空参的构造器
Object类中的功能(属性、方法)具有通用性
== 和equals()方法的区别
==:运算符,
- 可以使用在基本数据类型变量和引用数据类型变量中
- 如果比较的是基本数据类型变量,比较两个变量保存的数据是否相等(不一定类型要一样),如果比较的是引用数据类型的变量,比较的是地址值是否相等。即两个引用是否指向同一个对象实体。
- == 符号使用时,必须保证两边的变量类型一致。
package com.atguigu.equals;
import java.util.Date;
public class EqualsTest {
public static void main(String[] args) {
int i = 10;
int j = 10;
double d = 10.0;
System.out.println(i == j);//true
System.out.println(i == d);//true自动类型提升
boolean b = true;
// System.out.println(i == b);//错误
char c = 10;
System.out.println(i == c);//true
char c1 = 'A';
char c2 = 65;
System.out.println(c1 == c2);//true
Customer001 cust1 = new Customer001(21, "TOM");
Customer001 cust2 = new Customer001(21, "TOM");
System.out.println(cust1 == cust2);//false比较的是地址值
String str1 = new String("atguigu");
String str2 = new String("atguigu");
System.out.println(str1 == str2);//false
System.out.println("********************************");
System.out.println(cust1.equals(cust2));//也是多态//也是false
System.out.println(str1.equals(str2));//true//重写了object的equals方法
/* public boolean equals(Object obj) {
return (this == obj);
}*/
Date date1 = new Date(32432525323123l);
Date date2 = new Date(32432525323123l);
System.out.println(date1.equals(date2));//true
}
//重写的原则,比较两个对象的实体内容(即)
}
equals()方法的使用
- 是一个方法,而非运算符
- 只能适用于引用数据类型
- Object类中定义的equals()和==的作用是相同的,比较两个对象的地址值是否相同,即两个引用是否指向同一个对象实体
- 像String Data File 包装类中都重写了Object类中的equals()方法。重写以后,比较的不是两个引用的地址是否相同,而是比较两个对象的”实体内容“是否相同。
- 通常情况下,我们自定义的类如果使用equals()的话,也通常是比较两个对象的实体内容是否相同,那么,我们就需要对Object类中的equals()方法进行重写。