初学问题

linxviva 2009-07-08 03:39:54
先建了一个类
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长的联想 初学者.
...全文
53 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
高效匠人 2009-07-09
  • 打赏
  • 举报
回复
兄弟 你还是好好理解一下类之间的调用哦!还有变量命名!
yuhongpingimu 2009-07-08
  • 打赏
  • 举报
回复
8楼该看thinking in Java
回答很积极,大家
GodoorSun 2009-07-08
  • 打赏
  • 举报
回复
    
public String toString() {
return getClass().getName() + "@" + Integer.toHexString(hashCode());
}

未重载toString()的话,调用的是该对象的hashcode的十六进制表示。
不过应该也跟内存地址有点关系额。。
我本是朱 2009-07-08
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 wangjiancy 的回复:]
System.out.print()
会默认调用toString()方法。所以你new Date()后会开辟内存空间,
打印出来的是内存地址。
想要得到new Date(),你就必须要声明一个Date
类型的变量,Date date = new Date();
[/Quote]
支持
日辰言成 2009-07-08
  • 打赏
  • 举报
回复
呵呵,我也在看java编程思想~
bigbug9002 2009-07-08
  • 打赏
  • 举报
回复
方法名应该是toString,你的代码中是toStirng,成了另一个方法了.仔细看看.
mayuning258 2009-07-08
  • 打赏
  • 举报
回复
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();
linxviva 2009-07-08
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 bigbug9002 的回复:]
你打出来的是地址.(实际上是偏移地址)

public String toStirng(){ 错了,是toString.
[/Quote]

错了,是toString. 什么意思 能举个例子么`谢拉
hao117 2009-07-08
  • 打赏
  • 举报
回复
一个程序只能有一个main吧
bigbug9002 2009-07-08
  • 打赏
  • 举报
回复
你打出来的是地址.(实际上是偏移地址)

public String toStirng(){ 错了,是toString.
linxviva 2009-07-08
  • 打赏
  • 举报
回复

[Quote=引用 4 楼 bigbug9002 的回复:]
System.out.println(new HelloDate()); 这里new 创建一个HelloDate类的对象,并调用了对象的toString()方法.因为你没有覆写toString()方法,所以去调用了从Object类继承来的toString方法

如果你想得到你想看到的结果,你应该在HellDate类的定义中覆写public String toString()方法.
[/Quote]

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
这个就是所谓的内存地址??


谢谢大家的回答`
ltandfyy 2009-07-08
  • 打赏
  • 举报
回复
不知道LZ想问的是不是如何在类HelloDateShow中调用类HelloDate中的main方法,如果是这样的话只要HelloDate.main(new String[]{});这样就可以调用了。
但如果问题不是这个 确实是想调用类HelloDate中的new Date(),已经没机会了,第一,你没为它赋上一个句柄,仅用来创建当时打印,即使在方法内部,后面都没法再拿到这个对象。第二,这个new Date()在方法的内部,即使赋上句柄,使用也不能超出这个方法的范围,除非是在类HelloDate的内部申明成 成员变量,并且还有访问权限等问题。
不知道LZ想问的是?
bigbug9002 2009-07-08
  • 打赏
  • 举报
回复
System.out.println(new HelloDate()); 这里new 创建一个HelloDate类的对象,并调用了对象的toString()方法.因为你没有覆写toString()方法,所以去调用了从Object类继承来的toString方法

如果你想得到你想看到的结果,你应该在HellDate类的定义中覆写public String toString()方法.
wangjiancy 2009-07-08
  • 打赏
  • 举报
回复
System.out.print()
会默认调用toString()方法。所以你new Date()后会开辟内存空间,
打印出来的是内存地址。
想要得到new Date(),你就必须要声明一个Date
类型的变量,Date date = new Date();
JhunHoonXZ 2009-07-08
  • 打赏
  • 举报
回复
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();
lulu0126 2009-07-08
  • 打赏
  • 举报
回复
这里的new HelloDate()是调用的什么

这里不是调用,只是创建了class HelloDate 的一个对象。

如果想得到第一个类里面的(new Date()) 又要怎么实现呢???

Date()是一个系统类,和在哪个类没有关系,想用的话,你可以在任何一个类中,随便new 一个就行了! new Date(); 该对象包含的内容为系统的时间!

呵呵 看看api的吧!

62,621

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧