java吧 关注:1,239,612贴子:12,710,951
  • 18回复贴,共1

初学小菜鸟求大神帮看看,为什么输出的是第一个为什么输出int?

只看楼主收藏回复

package zuoye;
public class tt {
public static void go(Long n){
System.out.println("long");
}
public static void go(Short n){
System.out.println("short");
}
public static void go(int n){
System.out.println("int");
}
public static void main(String[] args) {
short y =7;
long x = 6;
go(y);
go(x);
}
}


1楼2015-01-28 19:54回复
    这个应该是方法的重载问题吧


    3楼2015-01-28 20:08
    收起回复
      隐士转换吧,short转换成int


      4楼2015-01-28 20:14
      收起回复
        学习


        来自Android客户端5楼2015-01-28 20:16
        回复
          我也刚开始学,记忆中好像数值运算,如加减乘除,short,byte,char会隐式转换成为int,不知道对不对


          6楼2015-01-28 20:24
          回复
            布尔值不参与转换


            7楼2015-01-28 20:25
            回复
              隐式转换一定是小的往大的转换,大的往小的转换要用强制类型转换(这里的大小不是指数值的大小,而是指占用内存的大小)


              8楼2015-01-28 20:27
              回复
                这9这样试试,short y=(short)7;


                来自手机贴吧9楼2015-01-28 20:31
                回复

                  直接上图


                  10楼2015-01-28 20:32
                  回复
                    主要是你把short类型和Short类给搞混了。short是基本数据类型,Short是一个Java 类。
                    试试这个
                    public class test2
                    {
                    public static void go(Long n)
                    {
                    System.out.println("Long");
                    }
                    public static void go(Short n)
                    {
                    System.out.println("Short");
                    }
                    public static void go(int n)
                    {
                    System.out.println("int");
                    }
                    public static void main(String args[])
                    {
                    Short y=6;
                    Long z= 7L;
                    go(y);
                    go(z);
                    }
                    }


                    来自iPhone客户端11楼2015-01-28 20:33
                    收起回复
                      你那Short类型大写了,改成小写的就正常了,不用谢。


                      12楼2015-01-28 20:35
                      回复
                        short型的y,引用了一个直接量7,这个直接量本身就是int型的。然后你在调用go方法时,使用参数y,就会去找那个int型的7了,这个时候,如果方法中有int行和short型重载,必然会去优先考虑int型。有点像你去找街坊甲借钱,他又找街坊乙借钱,这个时候,其实你拿到的钱,是街坊乙的。


                        13楼2015-01-28 20:38
                        收起回复
                          你的形参从Short改成short应该就是你想要的结果吧


                          来自Android客户端14楼2015-01-28 22:01
                          回复