Prezados, bom dia!
Estou estudando classes Internas, e pelo que li uma classe interna tem acesso a todos os métodos e variáveis declarados em sua classe externa vinculada. Correto?
No exemplo abaixo, estou tentando acessar as variáveis Externas utilizando a classe interna, porém o eclipse acusa erro por falta de declaração.
Alguem pode me informar o que está ocorrendo por favor? Eu comentei as linhas do código que gostaria de saber o motivo de acusar erro.
public class Externa {
int X, Y;
String Hello;
public Externa(){
X = 10; Y = 20;
Hello = "Hello World";
System.out.println("Um objeto de classe externa esta sendo criado");
}
void OuterClass(){
System.out.println("Eu sou a classe Externa");
}
public class Interna{
X = 100; //[u]Por quê não é possível utilizar a variável X declarada na Classe Externa?[/u]
public Interna(){
super();
System.out.println("Um objeto de classe interna esta sendo criado");
}
void InnerClass(){
System.out.println("Eu sou a classe Interna, dados externos "+X+" e "+Y+".");
}
}
}
public class Principal{
public static void main(String[] args){
Externa Ext = new Externa();
Externa.Interna Inte = Ext.new Interna();
Inte.InnerClass();
Inte.X = 30; //[u]Por quê não é possível utilizar a variável X declarada na Classe Externa?[/u]
Inte.Y = 50; //[u]Por quê não é possível utilizar a variável Y declarada na Classe Externa?[/u]
}
}