您好,欢迎来到测品娱乐。
搜索
您的当前位置:首页初学Java-简述Object类

初学Java-简述Object类

来源:测品娱乐

什么是Object类?
在Java中,Object类是所有类的超类, 通俗的讲,就是所有类的都继承Object类。是所有类的“ 祖宗 ”
再者就是,Object类中也包含自己的方法,如:
1.equals(Object obj):判断当前对象的和另一个对象的值是否相等。
2.hashCode():获取当前对象的的哈希值。
3.getClass():获取当前对象的类对象。
4.toString():返回当前对象的字符串表示。

下面我将示例一下toString和equals方法的调用:
1.toString()方法:
我首先创建了一个Animal类,写了age和name的get和set方法:

public class Animal extends Object{
    public int age ;
    public String name ;
    public int getAge(){
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

然后我创建了一个Demo类,创建对象a并调用set方法,然后分别传入参数18和Anna,接着输出对象a:

public class Demo {
    public static void main(String[] args) {
        Animal a =  new Animal();
        a.setAge(18);
        a.setName("Anna");
        System.out.println(a);
    }

如果我们想要输出的是我们传入的参数呢,我们可以调用toString方法,而这个方法存在于Object类中,因为所以类的继承于Object类,于是我们直接在子类Animal类重写toString方法,如下:

在idea中重写可以用快捷键Alt+insert,然后出现一个列表,点击toString再选中age和name两个成员变量,点击确定即可:

    @Override
    public String toString() {
        return "Animal{" +
                "age=" + age +
                ", name='" + name + '\'' +
                '}';
    }

然后这时候再在测试类中输出对象时,输出结果便是我们所传的参数了。

2.equals()方法:
同样是Animal类,这里就不在粘贴代码块了,在Demo类中,我们创建两个对象,传入同样的参数,来比较这两个对象的值是否相等,如下:

public class Demo {
    public static void main(String[] args) {
        Animal a =  new Animal();
        a.setAge(18);
        a.setName("Anna");

        Animal b = new Animal();
        b.setAge(18);
        b.setName("Anna");
        System.out.println(a==b);
    }
}
    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        Animal animal = (Animal) o;
        return age == animal.age && Objects.equals(name, animal.name);
    }

最后在Demo类中再次比较,不过比较形式不再写为a==b,改为了格式为:
a.equals(b),即为:

System.out.println(a.equals(b));

此时输出结果为true。可以仔细观察equals方法的内容,了解它作比较的原理。
当中有一段代码getClass() != o.getClass(),其中调用了getClass的方法,因为getClass的方法可以获取该对象的类对象,所以这一段代码的意思是当前获取的对象的类对象不是另一对象o所获取的类对象,显然我们是在同一类中创建的对象,故两个对象都来自同一类,返回ture。
还有一段 Animal animal = (Animal) o;这段代码的意思是强制将animal变量转换为Animal的对象,这个操作称之为:类型强制转换。转换为对象后,下面就可以调用age方法来比较了。

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- cepb.cn 版权所有 湘ICP备2022005869号-7

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务