I have this class, Student, with the variable StudentID:
public class Student extends Person{
int studentID = 0;
int level;
public Student(){
}
Make the studentID a static member
Static members are kept throughout each instance of the class no matter how many instances of the clas there are.
public class Student extends Person{
static int studentID = 0;
int level;
public Student(){
}
public Student(String fName, String lName, int gLevel){
super(fName, lName);
if(gLevel >= 0 && gLevel <= 12){
level = gLevel;
}
studentID++;
}
public int getLevel(){
return level;
}
public String toString(){
String toReturn;
toReturn = super.toString() + "\n Grade Level: " + level + "\n ID #: " + studentID;
return toReturn;
}
}
Add a static counter
and initialize studentID
with it, incrementing it in the process :
public class Student extends Person{
static counter = 1;
int studentID = counter++;
...
You need a static variable to keep track of the number of students objects created.
public class Student extends Person{
/* Number of students objects created */
private static int studentCount = 0;
int studentID = 0;
int level;
public Student(String fName, String lName, int gLevel){
super(fName, lName);
if(gLevel >= 0 && gLevel <= 12){
level = gLevel;
}
studentID = Student.getNextStudentId();
}
private static synchronized int getNextStudentId() {
/* Increment the student count and return the value */
return ++studentCount;
}
}