所以我首先声明一个类的这个对象:
static enterprise[] en = new enterprise[10];
然后,在主要内部:
for(int i=0;i<=9;i++){
System.out.println("Insert name of the " + (i+1) + "ª enterprise");
en[i] = new enterprise(i);
Scanner scanner = new Scanner(System.in);
en[i].setName(scanner.next());
System.out.println(en[i].Name);
}
然后,在同一类的另一种方法中:
for(int i = 0; i<=9;i++){
System.out.println(en[i].index + "- " + en[i].Name);
}
所以,如果一开始我插入第一个企业A,第二个B,C,D,E,F,G,H,I,J ..我应该得到输出1 A 2 B等,但我得到9次十次。为什么会这样?
编辑:这是企业级:http://pastebin.com/gUCWRRgK
答案 0 :(得分:1)
这是因为您的字段被声明为静态。
public class enterprise {
static String Name;
static int index;
当字段为静态时,表示该变量与该类关联。静态变量不能为每个实例提供不同的值。
应该是这样的:
public class enterprise {
String Name;
int index;
答案 1 :(得分:0)
那是因为你让你的变量变得静止。删除静态关键字,它将工作。 static
在Java中不像在C中那样工作。