suchen

Heim  >  Fragen und Antworten  >  Hauptteil

Warum wird im Java-Videocode von Gaoqi die Zeit mithilfe eines neuen Objekts ausgedruckt, das mithilfe der Date-Klasse erstellt wurde, die Hash-Code-Adresse jedoch mithilfe eines selbst erstellten Objekts?

Als ich mir kürzlich das Video von Lehrer Gao angesehen habe, habe ich einen Wissenspunkt gefunden, den ich nicht ganz verstanden habe. Der Code lautet wie folgt:

public class Test065 {
    public static void main(String[] args){
        Date d = new Date();//得到当前时间的毫秒数
        System.out.println(d);
        Dog a = new Dog();
        System.out.println(a);
    }
}

class Dog{
    int age;
}

Die Ausgabeergebnisse lauten wie folgt:

Thu Jun 15 19:43:29 CST 2017
com.test065.Dog@33909752

Es gibt auch ein Objekt aus. Warum gibt das Date-Klassenobjekt die aktuelle Uhrzeit aus, während das selbst erstellte Objekt den Hash-Code ausgibt?

Xiaomengxin bittet Freunde um Hilfe, ich bin sehr beeindruckt!

巴扎黑巴扎黑2753 Tage vor987

Antworte allen(4)Ich werde antworten

  • 欧阳克

    欧阳克2017-06-23 09:16:34

    Println方法会调用输出对象的toString方法,如果对象没有定义toString方法,就按照继承链往父类找。
    Date有定义toString方法,所以输出的是格式化的属性信息。
    自定义的Dog类没有toString方法,所以用的父类的toString方法,也就是Object的

    Antwort
    0
  • 巴扎黑

    巴扎黑2017-06-23 09:16:34

    打印一个对象的时候,会打印出它的toString方法的返回值,Date重写了toString方法。Dog没有重写toString则会调用父类Object的toString方法

    Antwort
    0
  • typecho

    typecho2017-06-23 09:16:34

    Date类重写了Object父类中的toString(),你自己的类没有啊。。。看下Date类的源码

    Antwort
    0
  • 女神的闺蜜爱上我

    女神的闺蜜爱上我2017-06-23 09:16:34

    重写了toString方法,你可以自己到源码中看。

    Antwort
    0
  • StornierenAntwort