Classes internas - duvida

pessoal fiquei na duvida do seguinte:
variaveis locais de um metodo nao pode ser atribuida a uma class interna do metodo a nao ser q seja marcada como FINAL. pq?

class MetVAr{
	private String x = "exter";
	void doSt(){
		String z = "local metodo";
		class IntMet{
			void see(){
				System.out.println(x);
				System.out.println(z);
			}
		}
		IntMet im = new IntMet();
			im.see();
	}
	public static void main(String agr[]){
		MetVAr mv = new MetVAr();
		mv.doSt();
	}
}

se declarar como FINAL roda normal… :?