char numChar=4;//有的书说非法,是因为4是int型的,不允许拿int型给char赋值,但也不是一定有错,在这里4代表某个字符的ASCII码值,所以这个语句在执行时不会报错。
char numChar='4';合法,'4'是一个字符
若有
System.out.println(numChar);则会输出4,而上面的会输出一个其他的字符
int a,a为int类型的变量
char a,a为char类型的
int 范围比char大 大的范围可以作用小的范围 比如说double比int的范围大
你可以定义int a = 4; //范围小
也可以定义:double a=4; //范围大
所以 你定义 char a = 4;
自然也可以定义int a=4;
char numChar=4
其实副给 numChar 里的 字符不是4,而是 4对应的 ANSI 字符集中对应的字符!
比如 char numChar=97
那么 numChar 就是小写 a!
举例说明:
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进制的整数。
}
char numChar=4; 的确应该报错的。。!
4系统会默认当作int来对待,而int是不能向char进行自动类型转换的 但是为什么在MyEclipse也不提示错误?? 很疑惑,期待高手解答。