(炭);这段代码的目的是什么?

时间:2013-11-23 23:46:14

标签: java class methods char

感谢您的时间,

对于以下代码(类的方法),我不确定(char)应该做什么。 B arg 1有char,最后我也得到了一个字符。

那么,(char)是否像演员一样工作?如果它更常用,我想了解更多关于它的信息,所以如果你能告诉我在哪里看具体我会很感激。

static B calculer(B arg1, int arg2) {
    arg1.b = (char)(arg1.b + arg2);
}

3 个答案:

答案 0 :(得分:2)

Java字符是角色实际拥有Unicode代码点的幕后数字。 Java char是无符号的16位数(UTF-16)。因此,您可以通过多种方式将它们视为数字。这样做是将arg2添加到arg.b的Unicode值。

例如,如果arg.b'a'(代码点为十进制97)且arg110,则返回方法arg.b现为'k' 1}}(代码点是十进制数107)。

因为Java在数值运算期间提升数据类型,所以在向char添加int之后,表达式的结果是int而不是char。 char被提升为int。因此需要使用强制转换将结果重新转换为赋值的char。

答案 1 :(得分:0)

它被称为铸造。什么强制转换会将其他一些数据类型(如int)转换为字符。我认为这是Java代码?所以你想要更多地了解java字符以及它处理这种情况的方式。

答案 2 :(得分:0)

它将(arg1.b + arg2)投射到char

如果有多种数据类型可以解释,则将其转换为您想要的数据类型。

例如,如果我尝试将数字97显示为char而不是通常被解释为的int 97,我会将其视为这样:

System.out.println( (char)97 ); // will display 'a', instead of 97

我可以将a显示为97,也可以将其展示给int

在您的情况下,它会将(arg1.b + arg2)解释为char,而不是通常的情况。

示例

我写了这段代码(其中'a'代表arg1.b5代表arg2

char x = (char)('a' + 5);
System.out.println(x); // displayed 'f'

它显示'f',因为它将'a'5加在一起,它被解释为97 + 5(97是'a'的{​​{3}}值,或其本身的int值,然后保留(char)(102),然后将其解释为'f'char的{​​{1}}值)