public class TestJava3_6 {
public static void main(String[] args) {

char ch1 = 97;
char ch2 = 'a';
System.out.println("ch1="+ch1);
System.out.println("ch2="+ch2);
}}
输出结果:
ch1=a
ch2=a
为什么ch1的值是 a ,而不是97呢?

解决方案 »

  1.   

    char ch1 = 97;
    中的ch1是char类型的
      

  2.   

    "ch1="+ch1 将隐式地调用ch1.toString()方法,看一看它的toString()方法你就知道,它将返回一个长度为1的字符串
      

  3.   

    是char类型的有什么不同么?我看书上说的char可以表示的范围是0~255.不是也可以表示97么,输出不应该是97么?  char类型的变量不能是数字么?
      

  4.   


    瞎说的家伙char ch1 = 97;在赋值的时候已经隐式转换为字符型了
      

  5.   

    自己看    /**
         * Returns a <code>String</code> object representing this
         * <code>Character</code>'s value.  The result is a string of
         * length 1 whose sole component is the primitive
         * <code>char</code> value represented by this
         * <code>Character</code> object.
         *
         * @return  a string representation of this object.
         */
        public String toString() {
            char buf[] = {value};
            return String.valueOf(buf);
        }
      

  6.   

    char类型在赋值时,是将数据写入到一个buffer里面,调用toString()方法,将buffer中的数据转成String返回
      

  7.   

    97是int类型,ch1是char类型,一开始赋值(char ch1 = 97;)的时候,就隐式转换成char类型了。
      

  8.   

    char ch1 = 97;在赋值的时候已经隐式转换为字符型了
      

  9.   

    字符'a'的ASCII编码是97,所以数字97转换成字符以后会输出'a'
      

  10.   

    因为a的ASCII对应十进制下的97。
      

  11.   

    还有,JAVA在表述概念时用的自然语言或其缩写,char是character的取头缩写吧。
      

  12.   

    你又在瞎说了char类型在赋值时,是将数据写入到一个buffer里面,调用toString()方法,将buffer中的数据转成String返回
    这是它的包装类的toString()方法,基本数据类型本身没有任何方法。你还是自己搞清楚了再来回答别人的问题
      

  13.   

    楼上的意思是INT装进CHAR时就已经转成了String类型了是么?
      

  14.   

    我觉得是类型转化问题:
    我们知道。在大类型(范围广的类型)转化为小类型(范围小的类型)的时候
    需要强制转化。而相反小变大就会隐式的转化;
    本文中 char cha1 =97; 他最后还是转化成char类型了
    所以打印出 a ;请您们指教
      

  15.   

    刚学都有这种困惑,是askII码问题,你看看,65-90,对应 A--Z,97--122,对应a--z,楼主多试试就好了,加油
      

  16.   

    toString()是在System.out.println时调用的 赋值时没有用到
      

  17.   

    97是int 你定义的char
    所以把97 转化成字节码 ,对应的正好是a 
    你输入98 会是b
      

  18.   


    你换个数字看看 就全知道来了 原因就是 你第一个char类型的没加单引号 要加了 就输出97了
      

  19.   


    这不是卖关子啊,书上讲的很清楚的东东
    首先存进去的是字符型而不是字符串
    再字符变量是以ascii瑪存的
    这些更基本的东西你还是要去自己看书了解
    不是你问了这一个就ok了
    何不全面的了解一下
      

  20.   

    因为你的ch1类型是char啊,如果是int 就是显示的97
      

  21.   

    public class TestJava3_6 {
    public static void main(String[] args) {char ch1 = '97';
    char ch2 = 'a';
    System.out.println("ch1="+ch1);
    System.out.println("ch2="+ch2);
    }}
    你这样写就行了
      

  22.   

    你已经定义了变量是char了,当然是输出是字符啦
      

  23.   

    char  97  就是 a
      

  24.   

    System.out.println()输出时按照类型将值输出。
      

  25.   

    这个char对应的是ascII码,所以会打印那个
      

  26.   

    char ch1 = 97;
    !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    char的意思!!!!!!!!!!!
      

  27.   

    楼主 别着急哈, 多写写代码 积累编程思想就OK了
    前期,不懂的先死记下。O(∩_∩)O~