方法methodA返回类型是:public class returnIt{ 
     returnType methodA(byte x, double y) {    
      return (short) x/y * 2; 
    } 
} 希望大家帮我解释一下,越详细越好!谢谢了

解决方案 »

  1.   

    这个涉及到了Java数据类型的问题,应该是double类型的
      

  2.   

    设计Java类型隐式转换和强制转换的语法返回类型是 Double
      

  3.   

    1、如果按照楼主的代码来看的话,返回类型是double,因为强制类型转换short只对x起作用,然后跟y进行运算时自动转为double,所以最后结果为double;2、如果改成 return (short) (x/y * 2)的话,返回类型是short,因为最后对结果进行了强制类型转换
      

  4.   

    short 
    我的理由是 最后有强转。也就是四楼的意思。
      

  5.   

    这是怎么个情况啊?明明写得很清楚了啊,
               return (short) x/y * 2;    返回一个short类型的啊!
      

  6.   

    public class Horse {
        public static void main(String args[]) {
            int count = 0;
            for (int a = 0; a < 34; a++) {
                for (int b = 0; b <= (100 - 3 * a) / 2; b++) {
                    int d = 100 - 3 * a - 2 * b;
                    if (d > 0 ) {
                        System.out.println("a=" + a + "|b=" + b + "|c=" + d * 2);
                        count++;
                    }
                }
            }
            System.out.println("there are " + count + "ways to process");    }
    }
      

  7.   

    returnType methodA(byte x, double y) {    
          return (short) x/y * 2; 1、首先将x强制转换成short类型
    2、short类型的x除以double类型的y,结果为double类型,再乘以2
    3、返回值类型returnType为double类型
      

  8.   

    //如果是强制转换的话,
    那returnType methodA(byte x, double y) {   
      return (short) x/y * 2; 
    方法的类型必须要比short精度更高,而且在方法参数里头声明了参数y是double类型
    所以方法的返回类型肯定是double了
      

  9.   

    double 类型     (short)只对x进行了强制转换  后面的没有强制转换  因为y是double类型 
    所以最后隐式转换为double类型了 
      

  10.   

    计算顺序:括号=》除=》乘  得到最好结果为double
      

  11.   


    public class returnIt{ 
         returnType methodA(byte x, double y) {    
          return (short) x/y * 2; 
        } 
    } 首先执行强制类型转换:把x强制转换为了short型,然后x/y -->short/double,java会自动转换为最高级别类型:double,然后double类型的(x/y)再*2,还是double类型