java入门(二十七) | API(一)之Object

java入门(二十七) | API(一)之Object

java.lang包,这个包会自动导入。
java.lang.Object
java.lang.String
java.lang.StringBuilder/StringBuffer
正则表达式
包装类等

Object

1.1 概念

所有类的顶级父类
存在于java.lang包中,这个包不需要我们手动导包

1.2 常用方法

1.2.1 toString()

默认返回 类名@地址 的格式,来展示对象的地址值,如:a00000.Student@a0834e7。
如果想看属性值我们可以重写这个方法,重写后返回的就是把属性值拼接成一个字符串。
如:Student [name=苏大强, age=20, id=10001]

1.2.2 equals(Object obj)

当前对象和参数对象比较大小,默认是比较内存地址,如果要比较对象的属性,可以重写该方法。

1.2.3 hashCode()

返回该对象的哈希码值。

1.3 测试

package cn.qile.objectdemo;

//测试Object
//1、toString():默认的Object里提供的功能是,打印对象的地址值。如果要看对象的属性值,需要发生方法重写
public class Test1_Object {
    public static void main(String[] args) {
        //创建Person对象测试
        Person p = new Person("jack",18);
        //1、查看属性的值,不想打印对象时,默认调用Object的toString(),要重写toString()
        //默认:cn.qile.objectdemo.Person@12a3a380
        //重写后:Person [name=jack, age=18]
        System.out.println(p.toString());


        //2、hashCode():对象在内存中的哈希码值/编号
        System.out.println(p.hashCode());//312714112

        //3、equals(Object obj) :指示其他某个对象是否与此对象“相等”。
        //默认使用了Object提供的比较方式==比较,会比较两个对象的地址值
        System.out.println( p.equals( new Person() ) );//false

    }
}
//创建Person类
class Person extends Object{
    //构造方法
    public Person() {}
    public Person(String name, int age) {
        super();
        this.name = name;
        this.age = age;
    }

    private String name;
    private int age;

    //set()/get()
    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;
    }
    //重写toString()用来查看属性值,否则就是用了Object默认的打印地址值
    @Override
    public String toString() {
        return "Person [name=" + name + ", age=" + age + "]";
    }
}
hmoban主题是根据ripro二开的主题,极致后台体验,无插件,集成会员系统
自学咖网 » java入门(二十七) | API(一)之Object