Creating an Inner Class Object from Outside the Outer Class Instance Code

public class Outer {

public static void main(String args[]){

Outer o = new Outer();

Outer.Inner i = o.new Inner(); // podemos ver a referência implicita da classe Inner entregue pela classe

//Outer no código Outer.Inner

System.out.println(i);

}

private class Inner{

@Override

public String toString() {

return “Inner”;

}

}

}

Output:

Inner

O ato de instanciar uma classe interna é o único cenário no qual invocamos “new” em uma instância de maneira oposta a invocar “new” para criar uma instância.

_________________________________________________________________________________________

public class Outer {

public static void main(String args[]){

this.????
//não há referência para this em método estático

}

private class Inner{

@Override

public String toString() {

return “Inner”;

}

}

}

_________________________________________________________________________________________

Nos exemplos que seguem abaixo vamos demonstrar como acessar uma classe interna de outra classe que não tenha nada a ver com a classe externa. Observe que seguem as regras dos Access Modifiers (para membros)

class Outer {

private class Inner{

@Override

public String toString() {

return “Inner”;

}

}

}

public class OuterTest {

public static void main(String args[]){

Outer o = new Outer();

Outer.Inner i = o.new Inner();

}

}

______________________________________________

class Outer {

protected | public| (default) class Inner{

@Override

public String toString() {

return “Inner”;

}

}

}

public class OuterTest {

public static void main(String args[]){

Outer o = new Outer();

Outer.Inner i = o.new Inner();

}

}

Esta entrada foi publicada em inner class com as etiquetas . ligação permanente.

Deixe uma Resposta

Preencha os seus detalhes abaixo ou clique num ícone para iniciar sessão:

Logótipo da WordPress.com

Está a comentar usando a sua conta WordPress.com Terminar Sessão / Alterar )

Imagem do Twitter

Está a comentar usando a sua conta Twitter Terminar Sessão / Alterar )

Facebook photo

Está a comentar usando a sua conta Facebook Terminar Sessão / Alterar )

Google+ photo

Está a comentar usando a sua conta Google+ Terminar Sessão / Alterar )

Connecting to %s