5陪在你身边
2016-09-08 08:41
请问 int indexOf(int ch) 中为什么ch是 字符 参数却是int类型呢
上面写错了,暂时找不到地方撤回,下面贴上搜来的答案:
这不该有疑问的,因为在Java当中char类型是可以给int类型赋值的,是可以相互赋值的
首先int类型32个位(1个符号位+31个数值位) char类型16个位(16个数值位)
char data = 97;这样的赋值是没有错误的 这是用ascii编码来给char赋值
楼主问题是从char到int的自动提升 在Java当中 一个较小数据类型是直接可以赋值给大数据类型的而且在参数传递的时候同理,你可以写这样一行代码:
int data = 'a'; //或者:
char c = 'e';
int i = c;//这样的赋值也没有错误
所以Java当中在参数匹配的时候是可以用char类型参数匹配int类型参数的定义的
s1.indexOf('e')等价于s1.indexOf(101) 在这里用e的ASCII编码来匹配int类型参数
另外,当你把一个方法定义成double类型参数的时候 byte short char int long float 类型的变量都可以匹配这个方法的参数,你可以试试看....Java基础问题...
String a = "love";
a.indexOf('v'); // indexOf(char ch) 返回值:3
a.indexOf(3); // indexOf(int ch) 返回值:v
ch就是个形参变量名,它具体是什么类型的看前面的修饰符
换句话说我如果开心,我都可以这么定义
String ch;
double ch;
float ch;
.......
你这个是不完全的吧?是不是方法里面的:int indexOf(int ch){};这个ch是一个名字不是字符类型即一个叫ch的整型数字。
int 是强制类型转换
这只是取了个名字而已。
ch只是整型变量名,比如int a=1
意思就好比 你 int abc=3;这个时候abc只是个变量名吧。
Java入门第三季
409792 学习 · 4340 问题
相似问题