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)
请各高手指教,小弟不胜感激!!!

解决方案 »

  1.   

    System.out.println(new NewClass()); //在命令窗口输出一个NewClass对象 javaapplication2.NewClass@*  
    System.out.println(P1);   //在命令窗口输出另一个NewClass对象P1 javaapplication2.NewClass@*  
      

  2.   


    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