每当我调用java中的函数时,将数字增加1

时间:2016-07-05 11:44:42

标签: java

每当我调用该函数时,我试图将数字增量打印1,但我无法得到解决方案,下面是我的代码

打击是功能

public class Functions<var> {

    int i=0;

    public int value()
    {

        i++;
        return i;

    }
}

我在这里调用上述功能

import Java.Functions;

public class Increment {


    public static void main(String[] args) 
    {
        Functions EF = new Functions();

        System.out.println(EF.value());    
    }

}

每当我运行程序时,我只得到输出为1,但我希望输出增加1。能否请你帮忙。在此先感谢。

3 个答案:

答案 0 :(得分:0)

我相信您的答案取决于变量的范围以及您对变量的理解。您只在给定的示例中调用该方法一次,因此无论如何1可以说是正确的答案。下面是一个工作示例,它将在运行时持续一个变量,并在每次调用函数时递增它。您的方法似乎不遵循常见的Java模式,因此我建议您查找一些小例子Hello,World片段。

public class Example{
 int persistedValue = 0; // Defined outside the scope of the method
 public int increment(){
  persistedValue++; // Increment the value by 1
  return persistedValue; // Return the value of which you currently hold
  // return persistedValue++;
 }
}

这是由于“persistedValue”的范围。它存在于“示例”类中,只要您持有“示例”的实例,它将为您的增量值保留一个真值。

测试基地如下:

public class TestBases {
 static Example e; // Define the custom made class "Example"
 public static void main(String[] args) {
  e = new Example(); // Initialize "Example" with an instance of said class
  System.out.println(e.increment()); // 1
  System.out.println(e.increment()); // 2
  System.out.println(e.increment()); // 3
 }
}

如果您的需求超出运行时持久性(应用程序运行之间持续存在的值),那么最好调查一些文件系统保存方法(特别是如果这是针对您的Java实践的!)

答案 1 :(得分:0)

您的主要问题是增加数字值1。

但是你只调用一次你的功能。即使您多次调用该函数,您也只能获得值1,因为它不是静态变量,因此每次初始化为0时都是如此。 所以请使用静态上下文检查以下答案。

Functions.java

public class Functions{

    static int i=0;   
    public int value()
    {
        i++;
        return i;
    }
}

Increment.java

public class Increment{

    public static void main(String []args){

        Functions EF = new Functions();

        System.out.println(EF.value());    
        System.out.println(EF.value());    
        System.out.println(EF.value());    
    }
}

输出:

1

2

3

答案 2 :(得分:0)

如果您设计多线程应用程序,最好使用AtomicInteger。 AtomicInteger类为您提供了一个可以原子方式读取和写入的int变量。

AtomicInteger atomicInteger = new AtomicInteger();
atomicInteger.incrementAndGet();