java什么是运算符重载,它与多态性不同吗?
我用Java编程,一直在努力理解操作符重载到底是什么。我还是有点困惑
运算符可以根据使用它的类而具有不同的含义?我读过这是“名字多态性”
Java显然不支持它,对此似乎有很多争议。我应该担心吗
作为最后一个问题,老师在作业中指出作业使用的是操作符重载,他主要是C++程序员,但我们可以用java编写作业。既然Java不支持重载,有什么我应该警惕的吗
你可以在下面搜索框中键入要查询的问题!
我用Java编程,一直在努力理解操作符重载到底是什么。我还是有点困惑
运算符可以根据使用它的类而具有不同的含义?我读过这是“名字多态性”
Java显然不支持它,对此似乎有很多争议。我应该担心吗
作为最后一个问题,老师在作业中指出作业使用的是操作符重载,他主要是C++程序员,但我们可以用java编写作业。既然Java不支持重载,有什么我应该警惕的吗
# 1 楼答案
运算符重载基本上意味着对不同的数据类型使用相同的运算符。因此会有不同但相似的行为
Java确实不支持这一点,但在任何类似的情况下都可能有用,您可以轻松地在Java中解决它
Java中唯一的重载运算符是算术
+
运算符。当与数字(int
、long
、double
等)一起使用时,它会添加它们,正如您所期望的那样。当与String
对象一起使用时,它会将它们连接起来。例如:这将在屏幕上打印以下内容:
This is a String
这是Java中唯一可以讨论运算符重载的情况
关于你的作业:如果要求做一些涉及操作符重载的事情,你不能在Java中这样做。问你的老师你在这项作业中可以使用什么语言。你很可能需要用C++来做。p>
PS:在
Integer
、Long
、Double
等对象的情况下,由于拆箱,它也会工作# 2 楼答案
可以使用天然a!=b(a不等于b)或a等于(b)
但是与其他语言相比,java有一组有限的运算符重载http://en.wikipedia.org/wiki/Operator_overloading
# 3 楼答案
关于这一点没有争议。有些人可能不同意这个决定,但James Gosling和其他人从第一天起就决定让类开发人员对操作符进行重载。这不太可能改变
正如这里的其他人所指出的,他们保留JVM在有限的基础上重载操作符的权利。关键是,当你开发自己的课程时,你不能这么做
他们这样做是因为有C++开发者滥用能力的例子(例如,重载点运算符)。p>
不,Java不会爆炸。你就是不能在课堂上这么做。如果你觉得你需要,你只需要写C++或其他语言。p>