当前位置: 代码迷 >> Java相关 >> [求助]java的一个小问题
  详细解决方案

[求助]java的一个小问题

热度:81   发布时间:2006-12-20 11:36:58.0
[求助]java的一个小问题


我是初学者、请问下面这个问题...
下面这个程序编译都不能通过。
import java.io.*;
public class test1
{
public static void main(String args[])
{
char c;
System.out.print("Enter a character please:");
try{
c=(char)System.in.read();
}catch(IOException e){};
System.out.println(" you've entered character:"+c);

}
}

错误提示:test1.java:11: variable c might not have been initialized
System.out.println(" you've entered character:"+c);
^
1 error

c没有被初始化、如果把初始化了是能够通过的、、

我的问题是:"为什么要给c初始化了才能通过编译?"

搜索更多相关的解决方案: java  

----------------解决方案--------------------------------------------------------
char c='a';



你随便初始化一下就可以了

因为你对c赋值的语句不一定会成功,所以你后面用到的c 就不一定是有值的了,所以你必须初始化一下c

这是JAVA对本地变量的硬性规定,成员变量就无所谓,JVM会给你初始化的
----------------解决方案--------------------------------------------------------
char类型变量缺省值是‘\u0'
在没有初值的情况下、为什么不用'\u0'作为它的初值呢?
还要硬性指定一个

请解释

----------------解决方案--------------------------------------------------------

你把它作为成员变量时,系统会为它赋上'\u0'

但是局部变量,JVM是不会为它赋上初始值的


----------------解决方案--------------------------------------------------------

注意成员变量与非成员变量的区别!这个没有什么好解释的!可以给sun公司致电!


----------------解决方案--------------------------------------------------------

你的解释牛!!


----------------解决方案--------------------------------------------------------

SUN公司电话:1212112 (洞俩洞俩洞洞俩)


----------------解决方案--------------------------------------------------------

谢谢、
我记住了


----------------解决方案--------------------------------------------------------
  相关解决方案