Okay. The counter variable is a static int as I described (also known as a "class variable"), but it isn't meant to limit the number of Student objects created. The number 50 was given as the maximum number of Student objects expected at this point, so 50 can be used as the size of the array in which those objects will be stored. I believe the term "static size" was meant to indicate the number of student objects would be no more than 50 and wouldn't expand beyond that for this phase of the program.
In summary, there will be two class variables:
static int counter;
static Student[] students = new Student[50];