我创建了一个学生对象的Arraylist。我使用静态变量作为ID。
这就是我的学生班级的样子;
Runner文件看起来像;
我收到的输出是;
St_ID St_Name St_Age St_Course 3詹姆斯23统计 3米克24生物学 3珍妮22文学
但我需要的是;
St_ID St_Name St_Age St_Course 1詹姆斯23统计 2 Mick 24 Biology 3珍妮22文学
答案 0 :(得分:1)
你对count
变量是静态的是正确的。但是,Student
类还应该有一个字段,用于存储每个学生的ID。这应该是非静态的,因为每个学生都会有不同的。
private int id;
在构造函数中,为其指定count
:
count++;
id = count;
getId
方法应该是非静态的,并返回id
:
public int getId() { return id; }
答案 1 :(得分:0)
如果您不能使用唯一ID,则调用stobj.hashCode()将返回唯一的哈希码,因此每个学生都有唯一的ID。但是,如果你需要id从1开始并计数,那么保持计数,还要创建一个非静态变量并将其设置为等于构造函数中的当前计数。
public class Student {
//fields here
private static int count = 0; //not good style, but whatever
private int id;
public Student(String n, int a, String c) //you should work on your variable names
count++;
id = count;
//other stuff here