VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > 编程开发 > Java教程 >
  • 012-Object类

一、Object类


一、说明

  java 中任何一个类默认继承Object,就算没有直接继承,最终也会间接继承,因此 Object 类的方法都是所有子类通用的;


二、Object类常用方法(其他的可查阅API)

  1. protected Object clone() // 负责对象克隆的;
  2. int hashCode() // 获取对象哈希值的一个方法;
  3. boolean equals(Object obj) // 判断两个对象是否相等;
  4. String toString() // 将对象转换成字符串形式;
  5. protected void finalize() // 垃圾回收器负责调用的方法

三、toString()方法

  [修饰符列表] abstract class 类名{
    类体;
  }

一、toString()方法的源码

  public String toString() {
   return this.getClass().getName() + "@" + Integer.toHexString(hashCode());
   }
  源代码上 toString() 方法的默认实现是:类名@对象的内存地址转换为十六进制的形式

// 定义一个类
public class Student {    
}
public class test {

    public static void main(String[] args) {
        Student student = new c();
        System.out.println(student.toString());
        //输出的是:com.test.Student@28f67ac7
    }

}

二、设计toString()方法的作用

通过调用这个方法可以将一个“java对象”转换成“字符串表示形式”;

三、注意

输出引用类型的值时,会自动调用该引用的toString()方法;
建议所有的子类都去重写toString()方法;

// 定义一个类
public class Student {   
 //重写toString方法
 @Override
    public String toString() {
        return "Student{重新toString方法}";
    } 
}
public class test {

    public static void main(String[] args) {
        Student student = new c();
        System.out.println(student.toString());
        //输出的是:Student{重新toString方法}
    }

}

四、equals()方法

一、equals()方法的源码

  public boolean equals(Object obj) {
     return (this == obj);
   }

二、equals()方法作用

  equals方法是判断两个对象是否相等的;

三、重写equals()方法

  在 Object 类中的 equals 方法当中,默认采用的是“= =”判断两个java对象,是否相等。而当使用“= =”去判断两个 java 对象时,判断的是两个 java 对象的内存地址,但是我们应该判断两个 java 对象的内容是否相等。所以 Object 类的 equals 方法不够用,需要子类重写 equals。
 

五、finalize()方法

一、在Object类中的源代码:

  protected void finalize() throws Throwable { }
  GC:负责调用finalize()方法。

二、调用方式

  这个方法不需要我们去手动调用,JVM 的垃圾回收器负责调用这个方法。不像 equals()、 toString(),equals() 和 toString() 方法是需要你写代码调用的。finalize() 只需要重写,重写完将来自动会有程序来调用;

三、使用时机

当一个 java 对象即将被垃圾回收器回收的时候,垃圾回收器负责调用 finalize() 方法

注:finalize() 方法实际上为我们提供了一个时机,垃圾销毁时机,如果希望在对象销毁时机执行一段代码的话,这段代码要写到finalize()方法当中。

 

写在最后

以上关于 Object类 中 部分方法的使用介绍,后续如果有时间的话我也将持续更新,如果有错误或者是哪里不足的地方,欢迎各位大大提出宝贵的意见呀~

原文:https://www.cnblogs.com/yunlixzm/p/jichu12.html


相关教程