先建了一个类
package com.date;
import java.util.*;
public class HelloDate {

public static void main(String[] args) {
System.out.print("Hello, it is: ");
System.out.println(new Date());

}
}
在建一个类
import com.date.*;
public class HelloDateShow {

public static void main(String[] args) {

System.out.println(new HelloDate());
}
}运行的结果得到 :  com.date.HelloDate@1c78e57  想问下System.out.println(new HelloDate());  这里的new HelloDate()是调用的什么   如果想得到第一个类里面的(new Date()) 又要怎么实现呢???  看thinking in java 3第2长的联想  初学者.

解决方案 »

  1.   

    这里的new HelloDate()是调用的什么这里不是调用,只是创建了class  HelloDate 的一个对象。如果想得到第一个类里面的(new Date()) 又要怎么实现呢???  Date()是一个系统类,和在哪个类没有关系,想用的话,你可以在任何一个类中,随便new 一个就行了!   new Date();  该对象包含的内容为系统的时间!呵呵 看看api的吧!
      

  2.   

    new HelloDate()是在内存里创建一个对象..
    如果说HelloDate date = new HelloDate();
    那么System.out.println(new HelloDate()); 这里new HelloDate()调用的就是date
    前面的HelloDate date =相当于给new HelloDate()做了一个桌面快捷方式,以后用date就能访问这个对象了
    而如果你只是new HelloDate()的话,以后就访问不到了
    如果要得到第一个类里的new Date()的话
    public class HelloDate {Date date = new Date();
    public Date getDate()
    {
      return this.date;
    }public static void main(String[] args) {
    System.out.print("Hello, it is: ");
    System.out.println(date );} 在第二个类里
    HelloDate helloDate = new HelloDate();
    Date date = helloDate.getDate();
      

  3.   

    System.out.print()
    会默认调用toString()方法。所以你new Date()后会开辟内存空间,
    打印出来的是内存地址。
    想要得到new Date(),你就必须要声明一个Date
    类型的变量,Date date = new Date();
      

  4.   

    System.out.println(new HelloDate());  这里new 创建一个HelloDate类的对象,并调用了对象的toString()方法.因为你没有覆写toString()方法,所以去调用了从Object类继承来的toString方法如果你想得到你想看到的结果,你应该在HellDate类的定义中覆写public String  toString()方法.
      

  5.   

    不知道LZ想问的是不是如何在类HelloDateShow中调用类HelloDate中的main方法,如果是这样的话只要HelloDate.main(new String[]{});这样就可以调用了。
    但如果问题不是这个 确实是想调用类HelloDate中的new Date(),已经没机会了,第一,你没为它赋上一个句柄,仅用来创建当时打印,即使在方法内部,后面都没法再拿到这个对象。第二,这个new Date()在方法的内部,即使赋上句柄,使用也不能超出这个方法的范围,除非是在类HelloDate的内部申明成 成员变量,并且还有访问权限等问题。
    不知道LZ想问的是?
      

  6.   

    package com.date; 
    import java.util.*; 
    public class HelloDate { public String toStirng(){
    return "kao";
    }
    public static void main(String[] args) { 
    System.out.print("Hello, it is: "); 
    System.out.println(new Date()); } 

    为什么重写了 public String  toString()方法.  得到的结果还是一样 :com.date.HelloDate@5483cd 
    这个就是所谓的内存地址??
    谢谢大家的回答`
      

  7.   

    你打出来的是地址.(实际上是偏移地址)public String toStirng(){   错了,是toString.
      

  8.   


    错了,是toString. 什么意思 能举个例子么`谢拉
      

  9.   

    public class HelloDate { Date date = new Date(); 
    public Date getDate() 

      return this.date; 
    } public static void main(String[] args) { 
    System.out.print("Hello, it is: "); 
    System.out.println(date ); } 在第二个类里 
    HelloDate helloDate = new HelloDate(); 
    Date date = helloDate.getDate();
      

  10.   

    方法名应该是toString,你的代码中是toStirng,成了另一个方法了.仔细看看.
      

  11.   

    呵呵,我也在看java编程思想~
      

  12.   

        
    public String toString() {
    return getClass().getName() + "@" + Integer.toHexString(hashCode());
        }未重载toString()的话,调用的是该对象的hashcode的十六进制表示。
    不过应该也跟内存地址有点关系额。。
      

  13.   

    8楼该看thinking in Java
    回答很积极,大家