一、Object类:
Object 类仅有一个空参的构造方法。public Object(){ }
1、Object类是所有Java类的根父类;如果类的声明中未使用extends关键字指明其父类,则默认父类是Object类。例如:
public class Person{
………
}
等价于:
public class Person extends Object{
………
}
例:method(Object obj){ … } //可以接受任何类作为其参数
Person o=new Person();
method(o);
总结:1、基本数据类型:根据基本数据类型的值判断是否相等。相等返回true,否则返回false;
2、引用数据类型:比较引用类型变量的地址值是否相等。
“Ctrl+Shift+t”:可查看object类的具体源码实现。
二、equals()方法实战:
1、equals() : (1)、只能处理引用类型变量; (2)、在Object类,发现equals()仍然比较的是两个引用类型变量的地址值是否相等。
2、像String类 包装类 File类 Date类这些重写了Object类的equals()方法,比较是两个对象的"实体内容"是否相同。
3、像String类 包装类 File类 Date类这些重写了Object类的equals()方法,比较是两个对象的"实体内容"是否相同。
4、(1)、基本数据类型:根据基本数据类型的值判断是否相等。相等返回true;反之,返回false。 注:两端数据类型可以不同,在不同的情况下,也可以返回true
(2)、引用数据类型:比较引用类型变量的地址值
5、关于equals()方法的代码:
package com.atguigu.object;
public class TestEquals {
public static void main(String[] args) {
// TestEquals t=new TestEquals();
// t.test1();
//equals(); java.lang.Object类是所有类的父类。
//equals():(1)、只能处理引用类型变量; (2)、在Object类,发现equals()仍然比较的是两个引用类型变量的地址值是否相等。
Person1 p1=new Person1();
Person1 p2=new Person1();
System.out.println(p1.equals(p2)); //等价于:p1==p2;
//像String类 包装类 File类 Date类这些重写了Object类的equals()方法,比较是两个对象的"实体内容"是否相同。
String str1=new String("AA");
String str2=new String("AA"); //false
System.out.println(str1==str2);
System.out.println(str1.equals(str2)); //true
}
public void test1() {
//==
//1、基本数据类型:根据基本数据类型的值判断是否相等。相等返回true;反之,返回false
//注:两端数据类型可以不同,在不同的情况下,也可以返回true
//2、引用数据类型:比较引用类型变量的地址值。
// 1、基本数据类型:根据基本数据类型的值判断是否相等。相等返回true;反之,返回false
int i=12;
int j=12;
System.out.println(i==j); //true
char c=12;
System.out.println(i==c); //true
float f=12f;
System.out.println(i==f); //true
System.out.println(c==f); //true
int k=65;
char a='A';
System.out.println(k==a);
Object obj1=new Object();
Object obj2=new Object();
System.out.println(obj1);
System.out.println(obj2);
System.out.println(obj1==obj2); //false
Person1 p1=new Person1();
Person1 p2=new Person1();
Person1 p3=p1;
System.out.println(p1==p2); //false
System.out.println(p1==p3); //true
}
}
class Person1{
}