Mais outra

2 respostas
Grinvon
final class Outer {

   public class Inner {

       protected String Casa="Casa";

       }
   public void getAcesso() {

   Inner entrada = new Inner();

   entrada.Casa += "...";
   }

}

public class ex19 {

    public static void main(String[] args)
     {
        String saida;
        Outer.Inner  i = new Outer().new Inner();
          Outer o = new Outer();
         System.out.println(i.Casa);
         saida=outAcesso(new Outer().new Inner().Casa);
         System.out.println(saida);
     }

    public void amethod() {
      Outer.Inner f = new Outer().new Inner(); }

    public static String outAcesso(String entrada) {
    return entrada += "X";
    }
}

Qual será a saída e por que? :smiley:

2 Respostas

Ironlynx

Casa e CasaX.
a primeira chamada a println foi passada a variável i do tipo innerclass
Outer.Inner que acessa o atributo protegido Casa cujo valor é “Casa”,logo será mostrado “Casa” na tela.detalhe:se o atributo fosse privado seria acusado um erro na sua tela; de acesso a esse atributo.
a segunda chamada,foi passada diretamente uma String saída q recebeu o conteúdo do método outAcesso() o acesso ao atributo Casa é direto,mas seu conteúdo foi modificado para “CasaX” na concatenação em outAcesso()(uma nova String foi criada). :wink:

Grinvon

Isso mesmo Iron. Gostei de sua resposta =D. Depois vou mandar mais algumas de minha autoria para o forum :smiley:

Criado 17 de março de 2004
Ultima resposta 18 de mar. de 2004
Respostas 2
Participantes 2