Ajuda com declaração do tipo "final"

1ª alguém sabe me explicar porque na linha 05 a variável tem que ser final assim ela fica visível na linha 14.

2ª se e final porque ela muda o valor veja a saída

Antes do Service()…: dm
Utilizado o valor em service!!!
Após do Service()…: DM - editado

alguém?

é esse seu código?
não ajudou muito…

[quote]
é esse seu código?
não ajudou muito…[/quote]

Obrigado pela atenção dispensada, mais acabei achando um tópico que respondeu minha duvida.

Só um detalhe. Uma variável de referência final não pode mudar o objeto para o qual aponta. Entretanto, pode-se mudar os valores desse objeto normalmente.

Por exemplo:

[code]public class Funcionario {
private String nome;

public String getNome() { return this.nome; }
public void setNome(String nome) { this.nome = nome; }

}
[/code]

Suponha que vc tem:

private final Funcionario f = new Funcionario();

Você pode fazer:

//Ok, está alterando um valor do objeto apontado por f. f.setNome("Vinicius");

Mas não pode:

f = new Funcionario();

ou

f = null;

Não pode, está tentando alterar o local onde f aponta.