每当我调用该函数时,我试图将数字增量打印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。能否请你帮忙。在此先感谢。
答案 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();