Bueno a ver, en esa forma de usar el for, for-each has de olvidarte de los contadores, los hace solo sin declararlo,
int array[] = {81,13,10,34,23,234,8,33}; <--- en este caso el array guarda valores primarios int no objetos.
entonces el for each declara un int llamado element que recorrera la Array llamada array
for (int element : array){... lo que sea }
te pongo el ejemplo con Objetos, imaginate la clase Persona
Persona array[] = {persona1,persona2,persona3,persona4};
int value = array[0].edad;
for(Persona element : array){ if (element.edad > value) { value = element.edad; } }
En este caso que te pongo imaginate la clase Persona, tiene un atributo edad, pues asigna al int value, el valor del atributo edad de la primera posicion del array.
Luego recorre con un for-each todas las personas del array, no ves contador alguno, porque lo hace solo, declaras un elemento igual a los del array, en tu ejemplo int, en el mio Persona, y los recorre todos en el array.
No se si se ve más claro ahora.
Echale un vistazo a este link, es del curso de java desde 0 y explica genial el for-each (mejor que yo seguro).
http://aprenderaprogramar.com/index.php?option=com_content&view=article&id=632:el-for-extendido-o-bucles-for-each-en-java-ventajas-e-inconvenientes-ejercicio-ejemplo-resuelto-cu00666b&catid=68:curso-aprender-programacion-java-desde-cero&Itemid=188