java - 在 Java 中对对象使用运算符

标签 java object operators

假设我们有一个类如下:

public class Time{
 int hour;
 int min;
 Time(int hour,int m){
  hour=h;
  min=m;
 }
 public String toString(){
 return hour+":"+min;
 }
}

我想在 main 中写一些这样的代码,结果如注释中所示:

Time t1 = new Time(13,45);
Time t2= new Time(12,05);
System.out.println(t1>=t2); // true
System.out.println(t1<t2);  // false
System.out.println(t1+4);   // 17:45
System.out.println(t1-t2);  // 1:40
System.out.println(t1+t2);  // 1:50 (actually 25:50)
System.out.println(t2++);   // 13:05

我可以通过接口(interface)等来做到这一点吗?还是我唯一能做的就是编写方法而不是使用运算符?

提前致谢。

最佳答案

这称为运算符重载,Java 不支持:Operator overloading in Java

所以是的,你必须坚持使用方法。

编辑:正如一些评论所说,您可以实现 Comparable 来制作您自己的 compareTo 方法 https://stackoverflow.com/a/32114946/3779214

关于java - 在 Java 中对对象使用运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32114848/

相关文章:

javascript - 如何从对象数组中获取键值列表 - JavaScript

Ruby && 运算符结果没有意义

javascript - 是否可以创建一个可以在特定函数内操作对象的函数?

java - 带条件的Spring文件配置

java - 使用 Micronaut 提供静态资源,具有目录层次结构

java - 如何制作一个没有 UI 的应用程序,以便当您打开它时,它会运行一些代码

javascript - 通过复选框进行多重过滤 - 纯 JS

delphi - 为什么将 varEmpty 与零评估的 varInteger 进行比较时 "="运算符结果为 True?

c++ - 无法理解 C++ 中的这段代码(运算符 &)

java - 如何使用 JPA 映射具有本地化产品名称的表?