java不支持运算符重载

写在前面

java是不支持运算符重载,在使用类的时候会出现一些使用的不舒服因为这一点不像c++一样用的那么流畅,语法上java会比较的啰嗦。

理解

c++的运算符重载是为了向上兼容,使得自定义的类型像基本数据类型一样拥有相同的能力。但是c++的运算符重载其实也是借助编译器的帮助将运算符的使用转化为相应的函数(全局,或者类的成员函数)。

java并不支持这项特性,但是这样的功能也是可以直接使用方法进行实现,就是用起来比较的啰嗦,c++一个运算符搞定的事情,java需要写一个方法调用。

对面向对象的语言来说,运算符本身就不够“面向对象”,一切都可以用方法来实现
java中确实没有云运算符重载,唯一例外是String里面的=和+
String类的"=","+","+=",看似运算符重载,实际不是,只是在java编译器里做了一点手脚。
java编译器对String的运算符做了特殊处理。
java没有提供运算符重载的功能,程序员无法定义+ * 等运算符,没有给程序员自己重载运算符的权利。

猜你喜欢

转载自blog.csdn.net/zhc_24/article/details/82777015