java.lang.Object
类 Object 是类层次结构的根(父)类。
每个类(Person,Student…)都使用 Object 作为超(父)类。
所有对象(包括数组)都实现这个类的方法。
@Override
public String toString() {
return "Person{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
看一个类是否重写了tostring方法,直接打印这个类的对应的对象名字即可
//看一个类是否重写了toString,直接打印这个类的对象即可,如果没有重写toString方法那么打印的是对象的地址值
Random r = new Random();
System.out.println(r);//java.util.Random@3f3afe78 没有重写toString方法
Scanner sc = new Scanner(System.in);
System.out.println(sc);//java.util.Scanner[delimiters=\p{javaWhitespace}+.. 重写toString方法
ArrayList<Integer> list = new ArrayList<>();
list.add(1);
list.add(2);
list.add(3);
System.out.println(list);//[1, 2, 3] 重写toString方法
}
equals
Person类默认继承了Object类,所以可以使用Object类的equals方法
boolean equals(Object obj) 指示其他某个对象是否与此对象“相等”。
equals方法源码:
public boolean equals(Object obj) {
return (this == obj);
}
参数:
Object obj:可以传递任意的对象
== 比较运算符,返回的是一个布尔值 true false
基本数据类型:比较的是值
引用数据类型:比价的是两个对象的地址值
this是谁?那个对象调用的方法,方法中的this就是那个对象;p1调用的equals方法所以this就是p1
obj是谁?传递过来的参数p2
this==obj -->p1==p2
Object类
1、object类介绍
object类是所有类的父类,一个类都会直接或者间接的继承自该类中提供的一些非常常用的方法
2、toString()方法
A:作用:打印对象的信息
B:重写前:打印的是包类名@地址值
C:重写后:打印的是对象中的属性值
3、equals()方法
A:作用:比较两个对象
B:重写前:比较的是对象的地址值
C:重写后:比较的是对象中的属性值
Objects类
对象的工具类
1、equals()方法
比较两个方法是否相同,但是加了一些健壮性的判断
public static void main(String[] args) {
String s1 = null;
String s2 = "sss";
// System.out.println(s1.equals(s2));
boolean result = Objects.equals(s1,s2);
System.out.println(result);
}