有个关于数据类型的问题没想明白,希望那位大侠给讲没明白点。先谢啦~~
代码1:
public class 实验{
    public static void main(String[] args){
        char letter1='A';
        letter1+=1;
        System.out.println(letter1);
    }
}
代码2:
public class 实验{
    public static void main(String[] args){
        char letter1='A';
        letter1=letter1+1;
        System.out.println(letter1);
    }
}代码1可以通过编译,并运行后显示B。但是如果将代码一改为代码2,就无法通过编译了。能解释下代码1用“+=”为什么能通过,而代码2用“letter1+1”为什么不能通过么?在线等1小时~~~~~

解决方案 »

  1.   

    代码2中,"letter1+1"是先将letter1自动类型转换为int型再于1相加,其和为int型(32位),所以无法存入char型。我是这么理解的不知道对不对。但是代码1我就没想明白,还望高人讲清楚点。谢谢!~~
      

  2.   

    letter1+=1;
    相当于letter=(char)(letter+1),编译器保证这点;
    你的理解是正确的.
    代码2类型不兼容.