【问题标题】:How to compare the values of objects of a class如何比较一个类的对象的值
【发布时间】:2023-01-30 22:55:58
【问题描述】:

我制作了一个内部类及其构造函数。在函数 func() 中,我将电池和时间的值传递给用户使用扫描仪输入的构造函数,并且多次调用此函数。我想比较用户使用该类输入的电池的不同值对象,然后打印它们。假设 func 被调用了 4 次,我每次都传递不同的电池值。我想检查它们之间的差异是否大于 1.. 如果是,则打印该电池值。例如:第一次通话- (98,2) 第二次通话-(97,4) 第三次通话(95,9) 第四次通话(94,11) 。这里第二次和第三次通话的电池电量之间的差异大于 1,所以我必须打印初始的,即第二次通话电池电量及其相应的时间。我该如何编码?

public class Out
{
Scanner sc=new Scanner(System.in)
class in
{
 int x,int y;
 in(int x,int y)
 {
     this.x=x;
     this.y=y;
 }
}
in obj=new in(0,0);//call this obj inside func
public void func()
{
    int battery=sc.nextInt();
    int time=sc.nextInt();
   in inner=new in(battery,time);
    
    
}

我不能使用数组列表,因为 func() 将被调用一千多次,以避免内存浪费。我制作了一个值为 0,0 的对象 obj 。我会将obj的电池值与in的电池值进行比较(比较电池值的差异是否大于1,如果是则打印之前的电池值)然后将obj的电池值更新为电池的当前值(通过用户)..

【问题讨论】:

  • 您可以仅跟踪电池的最大值和最小值(以及它们发生的时间),并将当前值与它们进行比较

标签: java class object constructor


【解决方案1】:

创建一个函数,根据您要测量的内容比较两个对象。

public boolean InEqual(in obj1, in obj2)
{
    if(obj1.x - obj2.x > 1)
      return true;
    else
      return false;
}

或者您可以返回值之间的差异

public int Difference(in obj1, in obj2)
{
    if(obj1 != null && obj2 != null)
      return obj1.x - obvj2.x;
    else
      return 0;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-29
    • 1970-01-01
    • 1970-01-01
    • 2014-01-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多