创建简单的Student类

时间:2013-09-24 03:26:41

标签: java class oop variables

我正在使用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。请帮助

3 个答案:

答案 0 :(得分:5)

您的getStudentID函数正在返回静态计数器而不是实例变量。

public long getStudentID() {
    return nextID;
}

应该是:

public long getStudentID() {
    return studentID;
}

此外,在构造函数中,您定义了一个名为studentID的参数,该参数隐藏了同名的实例字段,因此当您执行此操作时:

studentID=nextID;

您正在为参数指定一个值,然后在方法结束时将其丢弃。您应该删除参数,因为您在类中跟踪ID,您不需要将其传入。您还可以将其更改为this.studentIDthis显式引用实例字段。

答案 1 :(得分:0)

您的getStudentID方法返回了错误的值。它应该返回studentID字段,而不是静态nextID字段。

像这样:

public long getStudentID(){
    return this.studentID;
}

答案 2 :(得分:0)

使用此:this.studentID=nextID;代替studentID=nextID;