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);
}
}
posted @ 2022-07-05 13:42  zj勇敢飞,xx永相随  阅读(24)  评论(0编辑  收藏  举报