我是初学者、请问下面这个问题...
下面这个程序编译都不能通过。
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初始化了才能通过编译?"
----------------解决方案--------------------------------------------------------
char c='a';
你随便初始化一下就可以了
因为你对c赋值的语句不一定会成功,所以你后面用到的c 就不一定是有值的了,所以你必须初始化一下c
这是JAVA对本地变量的硬性规定,成员变量就无所谓,JVM会给你初始化的
----------------解决方案--------------------------------------------------------
char类型变量缺省值是‘\u0'
在没有初值的情况下、为什么不用'\u0'作为它的初值呢?
还要硬性指定一个
请解释
----------------解决方案--------------------------------------------------------
你把它作为成员变量时,系统会为它赋上'\u0'
但是局部变量,JVM是不会为它赋上初始值的
----------------解决方案--------------------------------------------------------
注意成员变量与非成员变量的区别!这个没有什么好解释的!可以给sun公司致电!
----------------解决方案--------------------------------------------------------
你的解释牛!!
----------------解决方案--------------------------------------------------------
SUN公司电话:1212112 (洞俩洞俩洞洞俩)
----------------解决方案--------------------------------------------------------
谢谢、
我记住了
----------------解决方案--------------------------------------------------------