JAVA文件代码如下:(我用的是NetBeans 5.5.1编写和运行的)
package javaapplication2;
public class NewClass {
public void Class() {
System.out.print("Welcome to here!!\n");
}
public static void main(String []args){
NewClass P1=new NewClass();
System.out.println(new NewClass());
System.out.println(P1);
P1.Class();
}
}程序可以正确运行,在运行的输出窗口显示结果如下:
init:
deps-jar:
Compiling 1 source file to E:\javabyNetBeans\JavaApplication2\build\classes
compile-single:
run-single:
javaapplication2.NewClass@35ce36
javaapplication2.NewClass@757aef
Welcome to here!!
生成成功(总时间:0 秒)
我想问的是为什么会出现橙色部分的结果(即javaapplication2.NewClass@35ce36和
javaapplication2.NewClass@757aef)
请各高手指教,小弟不胜感激!!!
package javaapplication2;
public class NewClass {
public void Class() {
System.out.print("Welcome to here!!\n");
}
public static void main(String []args){
NewClass P1=new NewClass();
System.out.println(new NewClass());
System.out.println(P1);
P1.Class();
}
}程序可以正确运行,在运行的输出窗口显示结果如下:
init:
deps-jar:
Compiling 1 source file to E:\javabyNetBeans\JavaApplication2\build\classes
compile-single:
run-single:
javaapplication2.NewClass@35ce36
javaapplication2.NewClass@757aef
Welcome to here!!
生成成功(总时间:0 秒)
我想问的是为什么会出现橙色部分的结果(即javaapplication2.NewClass@35ce36和
javaapplication2.NewClass@757aef)
请各高手指教,小弟不胜感激!!!
System.out.println(P1); //在命令窗口输出另一个NewClass对象P1 javaapplication2.NewClass@*
package javaapplication2;
public class NewClass {
public void Class() {
System.out.print("Welcome to here!!\n");
}
public static void main(String []args){
//创建一个p1对象
NewClass P1=new NewClass();
//创建一个NewClass类对象,跟p1不一样,他们的内存地址不一样
System.out.println(new NewClass()); //当你调用println方法的时候,自动回调用NewClass 类的toString()方法,这个方法这里没显示的写出来,但毕竟NewClass 类是继承Object类,继承Object类的toString()方法,所以得到你所说的结果
System.out.println(P1); //跟上面的解释是一样的!
P1.Class();
}
} 关于toString()方法的具体解释请看!
getClass().getName() + '@' + Integer.toHexString(hashCode())javaapplication2.NewClass +@ +35ce36