解决方案 »

  1.   

    重写 toString  什么异常。
      

  2.   

    关键在这里:
    public Point(Object x, Object y) 既然都Object了,那么传啥进去都行。再一个,toString方法是从Object继承过来的,有的类重写过,有的类没有重写,因此不存在转型的问题。比如,Integer类重写过toString(),所以System.out.println(new Integer(1).toString())的结果就是“1”。没重写的,toString()的结果就是对象的地址了。
      

  3.   

    2楼回答已经很详细了,楼主可以去看看Object类的toString 方法。
      

  4.   

    public class Position {
    private Object a; /**
     * @return the a
     */
    public Object getA() {
    return a;
    } /**
     * @param a the a to set
     */
    public void setA(Object a) {
    this.a = a;
    } public Position(Object a) {
    this.a = a;
    }
    }
    定义一个这样的类,如果不重写toString(),然后
    Point point4 = new Point(new Position(1), "北纬30度");
    System.out.println(point4.toString());
    调用。结果就是:Point [x=Position@5483cd, y=北纬30度]
    这就是你说的异常吧。
      

  5.   

    为什么下面的会报错啊?
    class Point{
    private Object x;
    private Object y;
    public Point(Object x, Object y) {
    this.x = x;
    this.y = y;
    }
    public Object getX() {
    return x;
    }
    public Object getY() {
    return y;
    }
    }
    public class Testfanxing {
    public static void main(String[] args) {
    // TODO 自动生成的方法存根
    Point point2 = new Point(1.2,"北纬100");
    String str1 =(String)point2.getX();
    String str2 =(String)point2.getY();
    System.out.println(str1 + "  " +str2);
    }
    }
      

  6.   


    int自动封装后变为Integer,再向上转型变为Object,然后变成了String类型,为什么不报错啊?
    新手,刚刚开始学java,谢谢la 
      

  7.   


    print
    public void print(Object obj)打印对象。按照平台的默认字符串编码将 String.valueOf(Object) 方法生成的字符串转换为字节,并完全以 write(int) 方法的方式写入这些字节。 参数:
    obj - 要打印的 Object
    另请参见:
    Object.toString()valueOf
    public static String valueOf(Object obj)返回 Object 参数的字符串表示形式。 参数:
    obj - 一个 Object。 
    返回:
    如果参数为 null,则字符串等于 "null";否则,返回 obj.toString() 的值。
    另请参见:
    Object.toString()
    Integer 的 toString  就是返回当前数值的String 形式。
      

  8.   


    int自动封装后变为Integer,再向上转型变为Object,然后变成了String类型,为什么不报错啊?
    新手,刚刚开始学java,谢谢la 
    不报错的原因是System.out.print方法会自动调用参数的toString方法。另外,String的加号运算符也被重载过,会自动调用其它参数的toString方法。而toString方法是任何对象都有的,所以,不会报错。
      

  9.   

    toStringpublic String toString()
    返回该对象的字符串表示。通常,toString 方法会返回一个“以文本方式表示”此对象的字符串。结果应是一个简明但易于读懂的信息表达式。建议所有子类都重写此方法。
    Object 类的 toString 方法返回一个字符串,该字符串由类名(对象是该类的一个实例)、at 标记符“@”和此对象哈希码的无符号十六进制表示组成。换句话说,该方法返回一个字符串,它的值等于:getClass().getName() + '@' + Integer.toHexString(hashCode())
     
    返回:
    该对象的字符串表示形式。