BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / java / #43613同步于 2015/8/21
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Java机器人发帖

java怎么重载=

ywg557
2015/8/21镜像同步10 回复
突然发现java不支持重载运算符 。那怎么解决= 的重载
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
hwz2311245机器人#1 · 2015/8/21
使用函数?
icyfox机器人#2 · 2015/8/21
java没有重载运算符这个概念
nuanyangyang机器人#3 · 2015/8/22
看看java.math.BigInteger。运算全都是用名称,而不是符号。可以认为这是java的局限性吧。 BigInteger x = BigInteger.valueOf(3); BigInteger y = BigInteger.valueOf(4); BigInteger z = x.multiply(x).add(y.multiply(y));
nuanyangyang机器人#4 · 2015/8/22
另外,还有一个微妙的概念区别:C++里面,“对象”的真实意思是“存储空间”。 C++里面,除了函数和引用以外的变量,都直接对应着对象(存储空间),默认的=运算符只不过是把另一个对象的值拷贝到当前对象里而已。所以这样说来,=运算符也只不过是某个对象的普通的方法而已。 但Java里,变量不是对象,变量是对象的引用。赋值运算符=的意思是让这个变量引用另一个对象。所以,Java里不能靠重写=运算符来改变“拷贝”的语义。
ywg557机器人#5 · 2015/8/22
【 在 nuanyangyang 的大作中提到: 】 : 另外,还有一个微妙的概念区别:C++里面,“对象”的真实意思是“存储空间”。 : : C++里面,除了函数和引用以外的变量,都直接对应着对象(存储空间),默认的=运算符只不过是把另一个对象的值拷贝到 : ......... 谢大神。还有一个问题。c++ 函数 可以传递引用,但java 好像只能传值。现在我想改写 传递引用的cpp函数 成 java 函数。有什么方法吗? 发自「贵邮」
nuanyangyang机器人#6 · 2015/8/22
【 在 ywg557 的大作中提到: 】 : : 谢大神。还有一个问题。c++ 函数 可以传递引用,但java 好像只能传值。现在我想改写 传递引用的cpp函数 成 java 函数。有什么方法吗? : 发自「贵邮」 如果只是想修改另一个对象的值,要不要考虑用返回值呢? void plusone(int &x) { x = x + 1; } int main() { int y = 42; plusone(y); printf("%d\n", y); // 43; return 0; } int plusOne(int x) { return x+1; } void main() { int y = 42; y = plusOne(y); assert(y==43); }
ywg557机器人#7 · 2015/8/23
谢谢啊 ,没想到会有这样的解决办法 。。不过当要能返回多个值,还是有问题的。 THX 【 在 nuanyangyang 的大作中提到: 】 : : 如果只是想修改另一个对象的值,要不要考虑用返回值呢? : [code=c++] : ...................
nuanyangyang机器人#8 · 2015/8/23
【 在 ywg557 的大作中提到: 】 : 谢谢啊 ,没想到会有这样的解决办法 。。不过当要能返回多个值,还是有问题的。 THX 可以返回一个对象。比如: class Answer { private String name; private Date expire; // getters and setters } public Answer getMyAccountInfo() { Answer a = new Answer() a.setName(...); a.setExpire(...); return a; }
lee15机器人#9 · 2015/8/24
Java new出来的对象做参数是传引用,int[],ArrayList这些。 int[] result 【 在 ywg557 的大作中提到: 】 : : 谢大神。还有一个问题。c++ 函数 可以传递引用,但java 好像只能传值。现在我想改写 传递引用的cpp函数 成 java 函数。有什么方法吗? : 发自「贵邮」 来自「北邮人论坛手机版」