为什么Java不提供操作符重载?

为什么Java不提供操作符重载?

从C+到Java,一个显而易见的未回答的问题是,为什么Java不包括操作符重载?

不是Complex a, b, c; a = b + c;Complex a, b, c; a = b.add(c);?

是否有一个已知的理由,有效的论据允许操作员超载?原因是武断的,还是迷失了时间?


撒科打诨
浏览 785回答 3
3回答

慕桂英4014372

JamesGosling将Java设计比作以下几个方面:“当你从一个公寓搬到另一个公寓时,这就是关于搬家的原则。一个有趣的实验是把你的公寓收拾好,把所有的东西都放进盒子里,然后搬到下一间公寓去,直到你需要时才把东西打开。所以你在做你的第一顿饭,你从盒子里拿出一些东西。一个多月后,你就会用它来找出你生活中真正需要的东西,然后你把剩下的东西拿走-忘记你有多喜欢它或者它有多酷-然后你就把它扔掉。令人惊讶的是,它简化了你的生活,你可以在各种设计问题上使用这个原则:而不是仅仅因为它们很酷,或者仅仅因为它们很有趣就去做。“您可以阅读引文的上下文基本上,运算符重载对于建立某种点、货币或复数模型的类来说是很好的。但在那之后,你就会很快地用尽所有的例子。另一个因素是C+中的特性被开发人员过度加载,比如‘&’、‘溶胶-’、CAST操作符,当然还有‘New’。将其与PASSbyvalue和例外相结合所产生的复杂性将在例外C+书。
打开App,查看更多内容
随时随地看视频慕课网APP