1

IDを1、2、3、4、つまり新しい名前にしたかったのです。

ID-名前-年齢

1-ポール-60

2-レジス-25

3-アナ-20

自動ID

static void register(ArrayList mylist) {
        int i = 1;
        Scanner in = new Scanner(System.in);
        Peoples p = new Peoples();
//        System.out.print("ID: ");
//        p.ID = in.nextInt();
        p.ID = i;
        i++;
        in.nextLine();
        System.out.print("Name: ");
        p.name = in.nextLine();
        System.out.print("Age: ");
        p.age = in.nextInt();
        mylist.add(p);
    }


public class Peoples {
    public int ID;
    public String name;
    public int age;
}
4

2 に答える 2

3

私はクラスを少し変更しましたPeoples(ところで、クラス名に単数を使用するのは良い習慣です)。

public class Person {
    private static int lastId;
    private int id;
    private String name;
    private int age;

    public Person() {
      id = Person.lastId++;
    }

    public void setName(String name) {
      this.name = name;
    }

    public void setAge(int age) {
      this.age = age;
    }
}
于 2012-09-29T21:58:57.907 に答える
2

メソッドの外部で変数を宣言する必要がありますi = 1。すべてのメソッド呼び出しで変数が同じ値に初期化されることを望まないためです。

static int i = 1;
static void register(ArrayList mylist) {

        Scanner in = new Scanner(System.in);
        Peoples p = new Peoples();
        p.ID = i++;   // You can do increment + assignment on the same line.
     // i++;  // No need to increment in separate line
        in.nextLine();
        System.out.print("Name: ");
        p.name = in.nextLine();
        System.out.print("Age: ");
        p.age = in.nextInt();
        mylist.add(p);
    }
于 2012-09-29T21:55:39.053 に答える