如果Java没有';不支持运算符重载?
我读到Java不支持操作符重载。然后我想知道如何在Integer类的实例上使用增量运算符如果Java没有';不支持运算符重载?,java,oop,operator-overloading,increment,Java,Oop,Operator Overloading,Increment,我读到Java不支持操作符重载。然后我想知道如何在Integer类的实例上使用增量运算符 Integer number = new Integer(10); System.out.println(++number); 上面的代码编译得很好,没有错误。但假设我创建了自己的类,只有一个成员变量(一个整数),并尝试使用增量运算符。这会给我一个编译器错误。这是为什么?这是在对整数对象调用增量运算符时执行的操作序列: Integer包装器对象被解除绑定到int原语(使用intValue()方法) 原语是
Integer number = new Integer(10);
System.out.println(++number);
上面的代码编译得很好,没有错误。但假设我创建了自己的类,只有一个成员变量(一个整数),并尝试使用增量运算符。这会给我一个编译器错误。这是为什么?这是在对
整数
对象调用增量运算符时执行的操作序列:
Integer
包装器对象被解除绑定到int
原语(使用intValue()
方法)整数
包装对象int
原语,而不是对象。此行为仅为原始包装器类的对象定义,并且无法使您自己的类以类似的方式运行
有关自动装箱和取消装箱的更多信息,请参阅 这是在调用
整数
对象上的增量运算符时执行的操作序列:
Integer
包装器对象被解除绑定到int
原语(使用intValue()
方法)整数
包装对象int
原语,而不是对象。此行为仅为原始包装器类的对象定义,并且无法使您自己的类以类似的方式运行
有关自动装箱和取消装箱的更多信息,请参阅 回答标题中的问题:该运算符是为整数定义的。回答文章末尾的问题:因为该运算符不是为类定义的(并且不能是因为不允许运算符重载)。整数是不可变的。您确定它是递增的
number
而不是将其转换为int
并显示++int
?在预增量后打印number
。回答标题中的问题:该运算符是为整数定义的。回答文章末尾的问题:因为该运算符不是为类定义的(并且不能是因为不允许运算符重载)。整数是不可变的。您确定它是递增的number
而不是将其转换为int
并显示++int
?在预增量后打印number
。