package test;public class TotalSum {
     public void totalSum(int x , int y){
      int total = x + y;
      System.out.println("int类型的结果:"+x+" + "+y+" = "+total);
      
     }
     public void totalSum(float x , float y){
      float total = x + y;
      System.out.println("float类型的结果:"+total);
     }
     public void totalSum(double x, double y){
      double total = x + y;
      System.out.println("double类型的结果:"+total);
     }
     public void totalSum(char x, char y){
      char total = 'x'+ 'y' ;
      System.out.println("字符类型的结果:"+total);
     }
     public static void main(String[] args){
      TotalSum myobject = new TotalSum();
      myobject.totalSum(3.2 , 5.3);
      myobject.totalSum(3f,5f);
      myobject.totalSum(6,3);
      myobject.totalSum('3','3');     }
}

解决方案 »

  1.   

     public void totalSum(char x, char y){ 
         char total = x+y; 
         System.out.println("字符类型的结果:"+total); 
        } >>这是你的原意吧,但是会出错!'x'+'y' 加法相当与2个整数相加,得到一个整数,已经超出127,属于一个不能显示的字符,?你可以测试以下2行代码的输出结果:
    System.out.println('3');
    System.out.println((int)'3');
      

  2.   

    你字符'3'的ascii码是51,两个加起来是102,这个是字母f的asccii码,打印出来应该是f,而不应该是问号?晕。我这里都打印出f的。
      

  3.   

    我晕,是说嘛,你使用的char total = 'x'+ 'y' ; 你使用char total = x+ y ; 就对了。'x'的asccii=120,'y'的是121,加起来大于127了。晕。
      

  4.   

    改成你说的那样还是不行撒这样的错误“double类型的结果:8.5
    float类型的结果:8.0
    int类型的结果:6 + 3 = 9
    Exception in thread "main" java.lang.Error: 无法解析的编译问题:
    类型不匹配:不能从 int 转换为 char at test.TotalSum.totalSum(TotalSum.java:18)
    at test.TotalSum.main(TotalSum.java:26)
      

  5.   

    char total = (char)(x+ y) ;
      

  6.   

         System.out.println((int)'x');//输出 120
         System.out.println((int)'y');//输出 121
         System.out.println((char)('x'+'y'));//输出 ?
         System.out.println((char)(120+121));//输出 ?
      

  7.   


    int形 (占4个字节,范围大约是正负21亿左右)
    120+121=241
    0111,1000(120)
    + 0111,1001(121)
    ----------------------
    1111,0001(241)
    char型(-128 到 127)
    120+121=-15
    0111,1000(120)
    + 0111,1001(121)
    ----------------------
    1111,0001(-15)System.out.println((char)-15);//所以输出“?”号其实,只要是负数,都一概是输出问号(?)的。