Here, you are accessing instance variable counter of object m4a of calss Mix4.
Here, in this while loop total 9 instances has been instantiated via statement : " m4a[x] = new Mix4(); "
the instance, which is just created, accessed it's own instance variable counter via dot operator and increment it by one.
Here, through out the completion of while loop,
ALL NINE instances' instance member, counter, has been accessed and incremented +1 by its previous counter value(in this case it is zero for all).// m4a[x].counter = m4a[x].counter + 1;
for the first time:
m4a.counter is being incremented and then
m4a.counter... and so on..!!
You can always access your members (including, instance members and class members) via dot operator.
Class members: "These are the members who has been declared with 'static' access specifier in the class definition. To access this you need not need to create instance of class. "
Instance members: "These are the members who has been declared non-static, you always need to create a instance of a class, like here: Mix4[x] m4a = new Mix4();"
But, by the way,, can