這不該有疑問的,因為在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基礎問題...
2017-09-24
上面寫錯了,暫時找不到地方撤回,下面貼上搜來的答案:
這不該有疑問的,因為在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基礎問題...
2017-09-24
String a ?= "love";
a.indexOf('v');????// indexOf(char ch)????返回值:3
a.indexOf(3);???? // indexOf(int ch)????返回值:v
2016-10-19
ch就是個形參變量名,它具體是什么類型的看前面的修飾符
換句話說我如果開心,我都可以這么定義
String ch;
double ch;
float ch;
.......
2016-09-08
你這個是不完全的吧?是不是方法里面的:int indexOf(int ch){};這個ch是一個名字不是字符類型即一個叫ch的整型數字。
2016-09-08
int 是強制類型轉換
2016-09-08
這只是取了個名字而已。
2016-09-08
ch只是整型變量名,比如int a=1
2016-09-08
意思就好比 你 ?int abc=3;這個時候abc只是個變量名吧。?