1

私はJavaを使用してクラスを作成しています。これは、オブジェクト、メソッドなどを理解するための基本的なクラスです。とにかく、クラス名はStudentで、新しく作成された各オブジェクトに学生IDを割り当てることになっています。学生 ID は 1000000 から始まり、1 ずつ増加するため、すべての新しいオブジェクトにはクラスに学生 ID、10000001、100000002 などを割り当てる必要があります。

public class Student {

 private static long nextID=10000000;
 private long studentID;
 //etc..

 public Student (String name, long studentID, int count, double total score) {
        totalScore=0;
        count=0;
        this.name=name;
        studentID=nextID;
        nextID++;

 }

 public long getStudentID() {
       return nextID;`
 }

ただし、このクラスのオブジェクトを作成すると、学生 ID は全員に同じ学生番号 10000000 を与え続けます。助けてください

4

3 に答える 3

5

関数getStudentIDは、インスタンス変数ではなく静的カウンターを返しています。

public long getStudentID() {
    return nextID;
}

次のようにする必要があります。

public long getStudentID() {
    return studentID;
}

また、コンストラクターでstudentID、同じ名前のインスタンス フィールドを非表示にする というパラメーターを定義するため、これを行うと、次のようになります。

studentID=nextID;

パラメータに値を代入していますが、メソッドが終了すると破棄されます。クラス内でIDを追跡しているため、パラメーターを削除する必要があります。渡す必要はありません。インスタンスフィールドを明示的に参照するように変更することもできthis.studentIDます。this

于 2013-09-24T03:28:40.030 に答える