Questão sobre Declaração, inicialização e escorpo. (RESPONDIDA)

4 respostas
anderson.bonavides

Gostaria de levantar a seguinte questão:

[code]import java.util.*;
public class Test {

void f(){
System.out.println("Outer");
}
public class InnerTest{
InnerTest(){
System.out.println("Inner Construtor");
}
void f(){
System.out.println("Inner f");
}
}
public static void main(String[] args) {
Test t = new Test();
Test.InnerTest test = t.new InnerTest(){
public void f(){
t.f();
System.out.println("Sub Inner f");
}
};

}

}
[code]

Se deparando com o seguinte resultado: "O resultado não compila". Por que seguinte motivo?

Desde já agradeço a todos que lerem e a todos que contribuírem com a resposta.

4 Respostas

CarlosEduardoDantas

olá…

está errado porque você está tentando acessar uma variável local dentro de uma classe interna anônima.

t.f();

tire o t e verá que o erro sumirá

anderson.bonavides

Humm muito bom…

vlw t+

D

Questãozinha disgraçada…

anderson.bonavides

Pra completar essa questão a variável “t” teria sentido se fosse FINAL, ou seja, o código compilava.

Criado 5 de outubro de 2007
Ultima resposta 7 de out. de 2007
Respostas 4
Participantes 3