public class StaticTest{
  public static void main(String[] args){
  Integer ten=new Integer(10);
  Float nine=new Float(9);
  System.out.println(ten + nine);
  double i=1;
  System.out.println(i + ten);  }
}
怎么结果不是109 
            110呀它们 不是返回一个string类.为什么封装类对象还可以相加呀?结果是19
      11

解决方案 »

  1.   

    不可能吧,这代码编译都通过不了
    +不能对INTEGER和FLOAT来使用啊,除非你把他们都写上toString()
      

  2.   

    你的程序编译通不过,对象不能直接+
    public static void main(String[] args) {
    Integer ten = new Integer(10);
    Float nine = new Float(9);
    System.out.println(ten.toString() + nine.toString());
    double i = 1;
    System.out.println(i + ten.toString());
    }
    109.0
    1.010 public static void main(String[] args) {
    Integer ten = new Integer(10);
    Float nine = new Float(9);
    System.out.println(ten.intValue() + nine.floatValue());
    double i = 1;
    System.out.println(i + ten.intValue());
    }
    19.0
    11.0
      

  3.   

    首先,你使用的jdk是5.0以上版本,从J2SE5.0以后引入了boxing和unboxing的概念,像Integer、Double等这些基本类型的Wrapper类,基本上等同于其相应的基本类。所以,
    int a =5, b = 6;
    System.out.println(a+b);
    等同于
    Integer x = 5,  y = 6;
    当然x,y是对象开销要比a和b大。但行为已等价于a和b。
    在这一点上Java正在向.NET靠拢。
      

  4.   

    public class StaticTest{
      public static void main(String[] args){
      Integer ten=new Integer(10);
      Float nine=new Float(9);
      System.out.println(ten + nine);
      double i=1;
      System.out.println(i + ten);  }
    }
      

  5.   

    a string will strcat(refer to the strcat function in c/c++) the following valuables
    but two number will just calculate""+1+2 returns 12
    1+2 return 3
      

  6.   

    i agree with above ~~~~
      

  7.   

    public class StaticTest{
      public static void main(String[] args){
      Integer ten=new Integer(10);
      Float nine=new Float(9);
      System.out.println(""+ten + nine);
      double i=1;
      System.out.println(""+i + ten);  }
    }
    就是得出:109.0
              1.010
    第一个一般要是字符的。。