class Cruncher{
void crunch(int i){
System.out.println("int version");
}
void crunch(String s){
System.out.println("String version");
}
public static void main(String args[]){
Cruncher crun=new Cruncher();
char ch='p';
crun.crunch(ch);
}
}
运行结果为什么是 int version ???
具体分析下....
int char 等都是基本数据类型 必要时Java会自动类型转换
string 是obj 或者说是个类 不能和基本数据类型自动转换的,String转换成基本数据类型都是用方法的
每个字母都有相对应的ASCII码,从1-255个数字对应键盘上的字母数字等~
比如你的p会转成ASCII码的112这个数字,当然相反数字也能转成char
建议你会网上查看下ASCII码,一般都会有解释的
因为char 类型不能隐式转换成String类型. 你直接放进去. 就等于放进去的是'p'的相对应的askii码. 就是数字了.
因为char 类型不能隐式转换成String 所以不会输出:String version
简单来说就是:char s = 1;是正确的赋值。而 char s = "1"; 则赋值出错。