public class MyTest {
public long sayChar(long c){
System.out.println(c+" is long");
return c;
}

public int sayChar(int c){
System.out.println(c+" is int");
return c;
}

public static void main(String[] args){
char c='a';
MyTest mt=new MyTest();
mt.sayChar(c);
System.out.println(mt.sayChar(c));
}
}输出结果
97is a int
97is a int
97为什么将c传过去 被判断为int ?????????????

解决方案 »

  1.   

    java中在运算的时候char、byte、short自动转换为int。
      

  2.   

    默认情况下
    基本数据类型可以从地精度隐式转换成高精度的数据
    你的char 类型可以范围明显低于int和long所以它即能转化成int也能转换成long char中的a转换成基本数据类型,其数值型就是97 ,是int类型,
    而int类型可以隐式转换成long类型!
      

  3.   

    char是小整型
    不会被传入 参数为long的方法中
      

  4.   


    这个说的对。mt.sayChar(c);
    这句打印出 “97is a int”;System.out.println(mt.sayChar(c));
    括号内先 打印出 “97is a int”,后回返回一个97,
    也就相当于 “System.out.println(97);”
      

  5.   

    java中在运算的时候小的数据类型会向相邻的大数据类型转换。
      

  6.   

    字符a的ascii为97 隐式转换后为int类型数据97
      

  7.   

    因为你写的方法接收的参数是整型,而c对应的int就是97,如果你要得到c的话,把方法接收的参数改为字符型就可以了
      

  8.   

    java中在运算的时候char、byte、short自动转换为int。
      

  9.   

    转换的结果,‘a’在ASCALL码中为97
      

  10.   

    引用 1 楼 hudie1234567 的回复:
    java中在运算的时候char、byte、short自动转换为int。
    这个是正确的,int转换成long也是隐式转换
      

  11.   

    char,byte,short自动转换成int类型
      

  12.   


    这个对,char是不能自动转为long类型的,可以自动转为int类型
      

  13.   

    java中在运算的时候char、byte、short自动转换为int。
      

  14.   

    你再写一个char类型的方法~~~~~~可能得到你想要的结果~~~
      

  15.   

    加一个
    public chae sayChar(char c)
    {
        system.out.println(c + "is char");
        return c;
    }
      

  16.   


    public class MyTest {
        public long sayChar(long c){
            System.out.println(c+" is long");
            return c;
        }
        
        public static void main(String[] args){
            char c='a';
            MyTest mt=new MyTest();
            mt.sayChar(c);
            System.out.println(mt.sayChar(c));
        }
    }
    97 is long
    97 is long
    97
    上面的运行结果说明调用sayChar()时,会首先查找是否有sayChar(char c),若有的话会调用它,若没有则把char转换成其他类型,首先当然是int型,若没有的话还可以进一步转化为long