Java中特殊的类---Object类

目录

Object类简介

取得对象信息

对象比较

接收引用数据类型


Object类简介

Object是Java默认提供的一个类。Java里面除了Object类,所有的类都是存在继承关系的,默认会继承Object父类。即所有类的对象都可以使用Object进行接收。

取得对象信息

直接使用对象输出,默认输出一个地址编码。如果现在输出的是String对象,此时输出字符串内容而非地址,原因就在于String类覆写了Object的toString( )方法。

覆写toString方法:

package www.singly.java;

class Person{
    private String name;
    private int age;

    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }

    @Override
    public String toString() {
        return "姓名:"+this.name+",年龄:"+this.age;
    }
}

class Student{}


public class Test1 {
    public static void main(String[] args) {
        fun(new Person("张三",20));
    }

    public static void fun(Object obj){
        System.out.println(obj.toString());//默认输出对象调用的就是toString方法
    }
}

toString的核心目的在于取得对象信息

String作为信息输出的重要数据类型,在Java中所有的数据类型只要遇见了String并且执行了“+”,那么都要求将其变为字符串后连接,而所有对象想要变为字符串就默认使用toString()方法。

扫描二维码关注公众号,回复: 4127617 查看本文章

对象比较

String类对象比较使用的是equals()方法。实际上String类的equals()方法就是覆写Object中的equals()方法。

package www.singly.java;

import java.util.Objects;

class Person{
    private String name;
    private int age;

    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }

    @Override
    public String toString() {
        return "姓名:"+this.name+",年龄:"+this.age;
    }

    @Override
    public boolean equals(Object obj) {
        if(obj == null){
            return false;
        }
        //判断obj是否为Person的实例
        if(!(obj instanceof Person)){
            return false;
        }
        //两者的地址值一样,那么内容一定相同
        if(this == obj){
            return true;
        }
        Person per = (Person) obj;//向下转型
        return this.name.equals(per.name) && this.age==per.age;
    }

}

class Student{}


public class Test1 {
    public static void main(String[] args) {
     Person p1 = new Person("li",30);
     Person p2 = new Person("li",30);
        System.out.println(p1.equals(p2));
    }
}

接收引用数据类型

Object可以接收所有引用类型,包括:类,数组,接口。

object真正达到了参数的统一,如果一个类希望接收所有的数据类型,就用Object完成。
 

猜你喜欢

转载自blog.csdn.net/baidu_40931662/article/details/83743759
今日推荐