Object类的toString方法与Object类的equals方法
java.lang.object类是Java语言中的根类,即所有类的父类。它中描述的所有方法子类都可以使用。在对象实例化的时候,最终找的父类就是Object。
如果一个类没有特别指定父类,那么默认则继承自Object类。例如∶
public class Myclass /*extends object*/ { //.... }
第一个方法
第二个方法
Object类的toString方法
package Object_demo01; public class Person { private String name; private int age; public Person() { } public Person(String name, int age) { this.name = name; this.age = age; } /* 直接打印对象的地址没有意义,需要重写Object类的toString方法 打印对象的属性(name 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; } @Override public String toString() { return "Person{" + "name='" + name + '\'' + ", age=" + age + '}'; } }
package Object_demo01; import java.util.ArrayList; import java.util.Random; /* java.Lang .object类 类object是类层次结构的根(最顶层)类。每个类都使用object作为超(父)类。 所有对象(包括数组》都实现这个类的方法。 */ public class Demo01ToString { public static void main(String[] args) { /* Person默认继承了Object类,所以我可以使用object类中的toString方法 String toString()返回该对象的字符串表示 */ Person p = new Person("张三",19); String s =p.toString(); System.out.println(s);//Object_demo01.Person@1b6d3586,显示是我们这个包路径 //直接打印对象的名字,其实就是调用对象的toString方法 p=p.toString(); System.out.println(p);//Object_demo01.Person@1b6d3586 //看一个类是否重写了toString方法,直接打印这个类对应对象名字即可 Random random = new Random(); System.out.println(random); ArrayList<Integer> list = new ArrayList<>(); list.add(1); list.add(2); System.out.println(list); } }
Object类的equals方法
package Object_demo01; /* Person类默认继承了object类,所以可以使用object类的equals方法boolean equals(object obj)指示其他某个对象是否与此对象“相等”。object类equals方法的源码: public boolean equals(Object obj) i return (this -= obj); 参数: object obj:可以传递任意的对象方法体: ==:比较运算符,返回的就是—个布尔值true,false基本数据类型:比较的是值 引用数据类型:比较的是两个对象的地址值 this是谁?那个对象调用的万法,方法中的this就是那个对象; p1调用的equals方法,所以this就是P1obj是谁?传递过来的参数p2 */ public class Demo01equals { public static void main(String[] args) { Person p1 = new Person("马可波罗",35); Person p2 = new Person("圣枪游侠",35); p1=p2; System.out.println("p1"+p1); System.out.println("p1"+p2); boolean equals = p1.equals(p2); System.out.println(equals); } //equals比较的是地址值 }
package Object_demo01;
import java.util.ArrayList;
import java.util.Random;
/*
java.Lang .object类
类object是类层次结构的根(最顶层)类。每个类都使用object作为超(父)类。
所有对象(包括数组》都实现这个类的方法。
*/
public class Demo01ToString {
public static void main(String[] args) {
/*
Person默认继承了Object类,所以我可以使用object类中的toString方法
String toString()返回该对象的字符串表示
*/
Person p = new Person("张三",19);
String s =p.toString();
System.out.println(s);//Object_demo01.Person@1b6d3586,显示是我们这个包路径
//直接打印对象的名字,其实就是调用对象的toString方法 p=p.toString();
System.out.println(p);//Object_demo01.Person@1b6d3586
//看一个类是否重写了toString方法,直接打印这个类对应对象名字即可
Random random = new Random();
System.out.println(random);
ArrayList<Integer> list = new ArrayList<>();
list.add(1);
list.add(2);
System.out.println(list);
}
}