public class Wq{ public static void main(String[] args) {
Wq wq=new Wq();
System.out.println(wq);
}
/*public String toString() {
return "haha";
}*/
}输出的Wq@192d342是什么东西?
加入注释内的语句为什么会输出haha呢?

解决方案 »

  1.   

    此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
    楼主【javastudyq】截止到2008-07-09 15:16:02的历史汇总数据(不包括此帖):
    发帖的总数量:2                        发帖的总分数:150                      每贴平均分数:75                       
    回帖的总数量:0                        得分贴总数量:0                        回帖的得分率:0%                       
    结贴的总数量:2                        结贴的总分数:150                      
    无满意结贴数:0                        无满意结贴分:0                        
    未结的帖子数:0                        未结的总分数:0                        
    结贴的百分比:100.00%               结分的百分比:100.00%                  
    无满意结贴率:0.00  %               无满意结分率:0.00  %                  
    敬礼!
      

  2.   

    你打印一个对象  就会调用他的toString()方法  调用的是Object类的toString()方法不带注释的打印出的应该是内存地址(这里我也叫不太准)你注释里重写了toString方法 所以打印haha
      

  3.   

    去Object类里面看看toString方法是如何实现的.
      

  4.   

    恩,就是就是,理论上是这样的,当你用System.out.println()输出东西的时候,它会自动调用传入参数的toString()方法,所以,如果你覆盖了传入参数的toString()方法,那就按照覆盖的来toString(),也就会输出haha,相反,如果你没有覆盖当前传入的参数的toString()方法,那就是默认的toString()方法,也就是在Object类中定义的toString()方法,它返回的是该类的字符串表达形式,等同于getClass().getName() + '@' + Integer.toHexString(hashCode())这个式子出来的值,说白了就是类名加内存地址,后面的数以16进制输出来的,差不多就这样,多看API吧,有用啊,嘿嘿·················
      

  5.   

    他会默认调用toString方法,这个方法你没有覆盖的话就输出内存地址
      

  6.   

        Object 类的 toString 方法返回一个字符串,该字符串由类名(对象是该类的一个实例)、at 标记符“@”和此对象哈希码的无符号十六进制表示组成。换句话说,该方法返回一个字符串,它的值等于:        getClass().getName() + '@' + Integer.toHexString(hashCode())
                 返回:
            该对象的字符串表示形式。而下面的注释代码就是重写了toString()方法·  
      

  7.   

    3楼说的有道理
    重写了toString方法 所以打印haha