[英]Casting Parameter Variables from int to char and vice-versa
如果在調用stuff時將char作為參數傳遞,它將編譯嗎? 傳遞int而不是char也會起作用嗎? 我知道您可以將類型從int轉換為char,但這不應該明確嗎?
我有一個Test類,它帶有一個返回類型為String的靜態方法,並以char a和int x作為參數。
public class Test {
public static String stuff(char a, int x)
{
char b = (char)x; String s = "";
while (a<b)
s+=a+b--;
return s;
}
public static void main(String args[])
{
System.out.println(stuff('a','d'));
}
}
是的,傳遞一個字符是合法的,但是不是一個好習慣。
向上投射(隱式)-
字節–>短–>整數–>長–>浮點–>雙精度
向下轉換(明確)-
double –>浮點–> long –> int–> short–>字節
int占用4個字節的內存,而char占用2個字節的內存,因此需要顯式轉換。 int可以取負值,而char只能取正值。
public class Test {
public static void main(String args[]) {
int i = 78; // 4 bytes
// char ch = i; // error, 4 bytes to 2 bytes
char ch = (char) i; // int is type converted to char
System.out.println(ch); // prints N (78 ASCII value for N)
System.out.println("Max int:"+Integer.SIZE+"bit");
System.out.println("Max char:"+Character.SIZE+"bit");
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.