我有这样的课:
private static class Num {
private int val;
public Num(int val) {
this.val = val;
}
}
是否可以使用“ +”运算符添加到类的对象?
Num a = new Num(18);
Num b = new Num(26);
Num c = a + b;
不,你不能。+
仅对数字,字符和进行重载String
,并且不允许定义任何其他重载。
有一种特殊情况,当您可以串联任何对象的字符串表示形式时-如果String
前两个操作数中有一个对象,toString()
则会在所有其他对象上调用。
这是一个例子:
int i = 0;
String s = "s";
Object o = new Object();
Foo foo = new Foo();
int r = i + i; // allowed
char c = 'c' + 'c'; // allowed
String s2 = s + s; // allowed
Object o2 = o + o; // NOT allowed
Foo foo = foo + foo; // NOT allowed
String s3 = s + o; // allowed, invokes o.toString() and uses StringBuilder
String s4 = s + o + foo; // allowed
String s5 = o + foo; // NOT allowed - there's no string operand
1. ()+() 执行加法运算。 示例: 按下小程按钮A,屏幕显示2加3的计算结果。 2. ()-() 执行减法运算。 示例: 按下小程按钮A,屏幕显示3减1的计算结果。 3.()*() 执行乘法运算。 示例: 按下小程按钮A,屏幕显示2乘以3的计算结果。 4. ()/() 执行除法运算。 示例: 按下小程按钮A,屏幕显示6除以2的计算结果。 5. 在()和()之间取随机数 在指定区间内取随机数。
1. ()+() 执行加法运算。 示例: 光环板启动后,LED灯环按指定颜色顺序显示,等待3(1+2)秒后,熄灭所有LED。 2. ()-() 执行减法运算。 示例: 光环板启动后,LED灯环按指定颜色顺序显示,等待2(3-1)秒后,熄灭所有LED。 3.()*() 执行乘法运算。 示例: 光环板启动后,LED灯环按指定颜色顺序显示,等待6(2×3)秒后,熄灭所有LED。 4. ()/() 执行除
问题内容: 任何人都可以通过一些示例解释在Java中使用^运算符吗? 问题答案: 与大多数语言中的^相同,只是XOR。
问题内容: 我没有Java参考书,也很难在Google上找到答案。 Java中的“ >>”和“ >>>”运算符有什么区别? 问题答案: 是逻辑位移,是算术位移。
问题内容: 考虑以下代码: 到底为什么呢? 我会这样计算: 但这是3。我不明白为什么在预先增加到时第二次不进行增加。 问题答案: 让我们首先关注看起来异常的行: 此处的运算符是(分配),(一元加号)和(预递增)。没有操作员。Java将其解释为两个运算符:和。添加适当的空格会更清楚: 现在让我们分析处理过程: 第一次迭代:和是。 预先增加到,这就是的结果。一元不执行任何操作,而是分配给。然后出现迭代
问题内容: 有人可以向我解释为什么可以这样做: 没有操作符重载怎么办(在这种情况下为“ =“) 我来自C ++背景,因此可以解释… 问题答案: 在这种情况下,没有过载。与不同的Java片段是的定义-Java编译器将“”中的任何内容转换为,因此在您的示例中也是一个简单的赋值。在中,编译器将“”转换为,因此需要从转换为。