我将为两个不同的对象调用readInput()。但在第一个我希望输出为#34;对于第一行" ,在第二个我想得到输出为"为第二行"。我能怎么做?谢谢。
import java.util.*;
public class Nokta{
Scanner keyboard = new Scanner(System.in);
public void readInput()
{
System.out.println("for the first line ");
String degerler = keyboard.nextLine();
}
我会这样打电话:
Nokta dogru1 = new Nokta ();
dogru1.readInput();
Nokta dogru2 = new Nokta ();
dogru2.readInput();
答案 0 :(得分:1)
试试这个:
Scanner keyboard = new Scanner(System.in);
public static int counter = 1;
public void readInput()
{
System.out.println("for the "+counter +"line ");
String degerler = keyboard.nextLine();
counter++;
}
更多信息:静态变量的值对于类
的所有对象(或实例)都是相同的答案 1 :(得分:1)
你需要使用static int。简而言之,静态只会在执行时初始化一次,每次执行时都不会初始化new Nokta()
对于静态和示例,请阅读link。
public class Nokta{
private static int lineNumber=1;
Scanner keyboard = new Scanner(System.in);
public void readInput()
{
System.out.println("for the "+ lineNumber++ +" line ");
String degerler = keyboard.nextLine();
}
在评论中,这将说“对于1行”和“对于2行”而不是“对于第一行”和“对于第二行”。
如果您想首先使用它,可以按How to convert number to words in java