Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java-如何仅将一个变量值与其以前的值进行比较?_Java_Oop - Fatal编程技术网

Java-如何仅将一个变量值与其以前的值进行比较?

Java-如何仅将一个变量值与其以前的值进行比较?,java,oop,Java,Oop,我正在开发简单的Java应用程序。应用程序应该能够比较变量值。例如,在我的A类中,有一个变量名为alt\u value 因此,这个alt_值是从无人机获取这个值(我现在设法从无人机获取这个值)。我所需要做的就是将当前的alt\u值与其以前的值进行比较。如果当前的alt_值高于上一个值,则应显示“向上”,反之亦然 这怎么可能呢?有什么想法吗?谢谢。在类中维护两个变量。一个用于新值,另一个用于旧值。无论何时获得新值,都将其与具有先前值的变量进行比较 将变量“alt_值”设为私有并创建一个setter

我正在开发简单的Java应用程序。应用程序应该能够比较变量值。例如,在我的
A类
中,有一个变量名为
alt\u value

因此,这个
alt_值
是从无人机获取这个值(我现在设法从无人机获取这个值)。我所需要做的就是将当前的
alt\u值与其以前的值进行比较。如果当前的
alt_值高于上一个值,则应显示“向上”,反之亦然


这怎么可能呢?有什么想法吗?谢谢。

在类中维护两个变量。一个用于新值,另一个用于旧值。无论何时获得新值,都将其与具有先前值的变量进行比较

将变量“
alt_值
”设为私有并创建一个setter“
setAlt_值(..)
”。在setter中,比较
alt\u value
中的现有值和
setAlt\u value()
中作为参数获取的新值,设置新值时可以执行以下操作

class Foo{
 int alt_value;
 String status;

 //setter for the alt_value will be called to set new value
 void setAltValue(int new_alt_value){
      if(new_alt_value > alt_value){
          status = "Going up";
      }
      this.alt_value = new_alt_value;
   }

}
像这样的东西

public static void main(String[] args) {
        String[] test = {"A", "B", "B", "C", "D", "E"};
        String prev = "";
        for (int i = 0; i < test.length; i++){
            if (test[i].equals(prev)){
                System.out.println("equals: " + prev);
            }
            prev = test[i];
        }
    }
publicstaticvoidmain(字符串[]args){
字符串[]test={“A”、“B”、“B”、“C”、“D”、“E”};
字符串prev=“”;
对于(int i=0;i
或类似的内容:

  class A {
    private int alt_value = 0;

    public int getAlt_value() {
      return alt_value;
    }

    public void setAlt_value(int alt_value) {
      this.alt_value = alt_value;
    }

    public boolean compare(int value) {
      boolean goingUp = value > alt_value;
      alt_value = value;
      return goingUp;
    }
  }
那么你可以打电话:

A instance = new A();
if (instance.compare(4)) {
  // show "Going Up"!
}

您需要有一个临时变量来存储以前的值。像这样的事情应该适合你

prev_alt_value = alt_value;
alt_value = droneMethodCall();
if(alt_value > prev_alt_value)
    System.out.println("Going Up!");

显示您尝试执行此操作的代码您可以更改类别A吗?最简单的解决方案是在对象中保存2个值(活动和旧)。否则,使用observables/ValueChangeListenerHint:不查看代码;思考这个问题可能会有帮助:“当我想要比较两个值时,我需要多少变量。一个或两个?”这不是必需的。在获得新的价值之前存储就足够了,比如说,像我建议的那样?