Java教程

Java常用类01:Object类

本文主要是介绍Java常用类01:Object类,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

getClass()方法

返回对象存储的实际类型,可用于判断两个对象实际存储的类型是否一致

public class Hello {
    public static void main(String[] args) {
        Test test = new Test();
        test.test();
    }
}

class Test extends Hello{
    public void test(){
        Hello a = new Test();
        Test b = new Test();
        System.out.println(a.getClass() == b.getClass());  //true,说明虽然a的声明类型是父类,其实际类型仍为子类
        System.out.println(a.getClass());  //class Test
    }
}

hashCode()方法

返回对象的哈希码值,根据对象的地址或字符串或数字使用hash算法计算出来的int类型数值,相同对象返回相同数值

public class Hello {
    public static void main(String[] args) {
        Hello a = new Hello();
        Hello b = a;
        System.out.println(a.hashCode());
        System.out.println(b.hashCode());  //相同对象哈希值相同
    }
}

toString()方法

返回对象的字符串表示,一般会重写该方法来自定义打印的内容

public class Hello {
    public static void main(String[] args) {
        System.out.println(new Hello().toString());
    }
    
    @Override
    public String toString() {  //快捷键ctrl + O
        return "重写toString()方法";
    }
}

equals()方法

判断两个对象是否相等,可进行重写来比较两个对象的属性是否相同

重写步骤

  • 比较两个引用是否指向同一个对象
  • 判断对象是否为null
  • 判断两个引用指向的实际对象类型是否一致
  • 强制类型转换
  • 依次比较各个属性值是否相同
public class Hello {
    public static void main(String[] args) {
        Test a = new Test(1, 2);
        Test b = new Test(1, 2);  //在重写了equals()方法后,如果两个对象的属性值相同,也能算是同一对象了
        System.out.println(a.equals(b));
    }
}

class Test{
    int a;
    int b;
    public Test(){}
    public Test(int a, int b) {
        this.a = a;
        this.b = b;
    }

    @Override
    public boolean equals(Object obj) {
        if (this == obj){  //比较两个引用是否指向同一个对象
            return true;
        }
        else if (obj == null){  //判断对象是否为null
            return false;
        }
        else if (obj instanceof Test){  //判断两个引用指向的实际对象类型是否一致
            Test n = (Test) obj;  //强制类型转换,因为在instanceof判断中,子类也是父类的对象类型,所以需要强制转换确保类型为Hello
            if (this.a == n.a && this.b == n.b){  //依次比较各个属性值是否相同
                return true;
            }
        }
        return false;
    }
}

finalize()方法

JVM自动调用此方法,进行垃圾对象回收

这篇关于Java常用类01:Object类的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!