java中char问题?

java中的char类型,有的书上说:
char numChar=4; //是非法的语句。
但这个语句执行时,并没报错。到底怎么回事?
它和
char numChar='4'; //一样吗?
我问老师了:
char numChar=4;
//非法的是jdk1.4版本的说法,以上的就没事了。

char numChar=4;//有的书说非法,是因为4是int型的,不允许拿int型给char赋值,但也不是一定有错,在这里4代表某个字符的ASCII码值,所以这个语句在执行时不会报错。

char numChar='4';合法,'4'是一个字符
若有
System.out.println(numChar);则会输出4,而上面的会输出一个其他的字符
温馨提示:答案为网友推荐,仅供参考
第1个回答  2008-09-10
int a,a为int类型的变量
char a,a为char类型的
int 范围比char大 大的范围可以作用小的范围 比如说double比int的范围大
你可以定义int a = 4; //范围小
也可以定义:double a=4; //范围大
所以 你定义 char a = 4;
自然也可以定义int a=4;
第2个回答  2008-09-11
char numChar=4

其实副给 numChar 里的 字符不是4,而是 4对应的 ANSI 字符集中对应的字符!

比如 char numChar=97

那么 numChar 就是小写 a!
第3个回答  2015-10-07
举例说明:
char ch1= '我';
int ch2=ch1;

System.out.println("ch1 = "+ch1); //ch1是char类型,这句调用的是
PrintStream:
public void print(char c) {
write(String.valueOf(c));
}
String:
public static String valueOf(char c) {
char data[] = {c};
return new String(0, 1, data); // char c所表示的unitcod字符
}

System.out.println("ch2 = "+ch2); //ch2是int类型,这句调用的是
PrintStream:
public void print(int i) {
write(String.valueOf(i));
}
String:
public static String valueOf(int i) {
return Integer.toString(i, 10); //10进制的整数。
}
第4个回答  2008-09-10
char numChar=4; 的确应该报错的。。!
4系统会默认当作int来对待,而int是不能向char进行自动类型转换的 但是为什么在MyEclipse也不提示错误?? 很疑惑,期待高手解答。
相似回答