A variável local book na primeira iteração referenciará o elemento livros[0]. Na próxima iteração referenciará o elemento livros[1] e assim por diante até chegar ao último elemento do array.
Um ponto importante do laço for-each é que os elementos do array poderão ser acessados, mas não poderão ser alterados. Isso significa que não teria sentido tentar anular os objetos de uma array fazendo o seguinte:
for(livro book:livros){
book = null;
}
Entretanto, é possível alterar o conteúdo do objeto. Por exemplo, poderíamos usar o método setTitulo() dentro do laço for-each para apagar o título de todos os elementos do array.
public void imprimeTodos(){ for(livro book:livros){ book.setTitulo(""); } }