Object类的toString方法和equals方法
Object类的toString方法
public class Person { private String name; private int age; public Person() { } public Person(String name, int age) { this.name = name; this.age = age; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } }
我们直接打印则是地址值
public class Tests { public static void main(String[] args) { Person pe = new Person("张三",11); String string = pe.toString(); System.out.println(string); System.out.println(pe); } }
我们就要重写toString方法
在运行就会打印出你的数据了
看一个类是否重写了toString方法,直接打印这个类对应对象的名字即可
如果没有重写toString方法,那么打印的就是对象的地址值(默认)
如果重写toString方法,那么就按照重写的方式打印
equals方法
指示其他某个对象是否与此对象“相等”。
Object类equals方法的源码:
参数:Object obj:可以传递任意的对象
方法体:
==:比较运算符,返回值的就是一个布尔值 true,false
基本数据类型:比较的是值
引用数据类型:比较的是两个对象的地址值
rhis 为那个对象调用的方法,方法中的this就是那个对象;p1调用的equals方法,所以this就是p1
obj传递过来的参数p2
this==obj --> p1==p2
默认比较的是两个参数的地址值
public class Equals { public static void main(String[] args) { Person p1 = new Person(); Person p2 = new Person(); boolean equals = p1.equals(p2); System.out.println(equals); } }