Método hasNext da classe Scanner - ALGUEM PODE ME EXPLICAR!?

Estudo java través do livro de Deitel (Java como programar 6ª edição). Ele utiliza extensamente a classe Scanner (só existente no java 5.0). Já consultei a API, mas n consigo entender como funciona e para quê ser o método hasNext() dessa classe. Sei q ele retorna um boolean, mas por exemplo: o livro faz uso de um exemplo q utiliza uma chamada ao método hasnext() numa condição de while e dentro do while utiliza leituras com chamadas a métodos do tipo next(), nextInt() e nextDouble(), gostaria de saber se a leitura do hasNext() se expande para todas as leituras dentro do while, ou se ele abre uma leitura padrão q mata o programa qd utilizamos o indicador de fim de programa (<ctrl> + z - no windows) a qualquer momento do while. Resumindo, eu n sei como funciona o hasNext(), se as minhas perguntas n forem pertinentes, por favor me ajude exlicando como funciona e para quê serve esse método. Antecipadamente agradeço a colaboração de todos.

Este método retorna true se tiver mais elementos na entrada. Se não tiver mais nenhum, ele sái do while.