0

所以我首先声明一个类的这个对象:

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 J 10次。为什么会这样?

编辑:这里是企业类: http: //pastebin.com/gUCWRRgK

4

2 回答 2

1

这是因为您的字段被声明为静态的。

public class enterprise {
    static String Name;
    static int index;

当一个字段是静态的时,这意味着该变量与该类相关联。每个实例的静态变量不能有不同的值。

应该是这样的:

public class enterprise {
    String Name;
    int index;
于 2012-08-02T23:22:05.963 回答
0

那是因为您将变量设为静态。删除静态关键字,它会工作。static不像在 C 中那样在 Java 中工作。

于 2012-08-02T23:25:03.087 回答