先建了一个类
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长的联想 初学者.
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长的联想 初学者.
如果说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();
会默认调用toString()方法。所以你new Date()后会开辟内存空间,
打印出来的是内存地址。
想要得到new Date(),你就必须要声明一个Date
类型的变量,Date date = new Date();
但如果问题不是这个 确实是想调用类HelloDate中的new Date(),已经没机会了,第一,你没为它赋上一个句柄,仅用来创建当时打印,即使在方法内部,后面都没法再拿到这个对象。第二,这个new Date()在方法的内部,即使赋上句柄,使用也不能超出这个方法的范围,除非是在类HelloDate的内部申明成 成员变量,并且还有访问权限等问题。
不知道LZ想问的是?
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
这个就是所谓的内存地址??
谢谢大家的回答`
错了,是toString. 什么意思 能举个例子么`谢拉
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();
public String toString() {
return getClass().getName() + "@" + Integer.toHexString(hashCode());
}未重载toString()的话,调用的是该对象的hashcode的十六进制表示。
不过应该也跟内存地址有点关系额。。
回答很积极,大家