Duvida II de inner classes

4 respostas
D

uma segunda duvida :

Duas declarações abaixo são verdadeiras com relação a uma classe interna local de método :

a - ela deve ser marcada final
b - ela deve ser marcada abstract
c - ela deve ser marcada public
d - ela deve ser marcada static
e - ela pode acessar membros privados da classe encapsuladora.

bom , primeiro…

a letra “e” está correta…
as letras “c” e “d” estao incorretas…

de resto tem essas aqui :

a - ela deve ser marcada final
b - ela deve ser marcada abstract

uma classe interna de metodo…poderia ser marcada final ou abstarct…

só que este “deve” acaba ficando muito estranho…porque ela nao e obrigado a possuir esses modificadores…

e porque somente a resposta
b - ela deve ser marcada abstract
juntamente com a letra “e” , é correta??

Obrigado!

4 Respostas

Ironlynx

Uma local inner class pode ser declarada abstract e final,não consta nada que deva ser assim.A única coisa demais que tem nesse tipo de classe interna de método é q ela tem escopo de método e só pode ser estanciada dentro do mesmo. exemplo:

class Fora { public void metodo() { final class Dentro { Dentro() { System.out.print ("Oia o construtor! "); } public void metodo() { System.out.print ("metodo de Dentro "); } } Dentro d = new Dentro(); }//fim de metodo public static void main (String [] args) { Fora f = new Fora(); f.metodo(); } }
Para saber mais:
http://java.sun.com/docs/books/tutorial/java/javaOO/nested.html

A

De novo, acho que o seu livro tem algum problema.
Deve ser a tradução! :wink:

Veja como está no original em inglês:

a - it must be marked final (deve ser marcada final)

b - it can be marked abstract (pode ser marcada abstract)

c - it can be marked public (pode ser marcada public)

d - it can be marked static (pode ser marcada static)

e - it can access private members of the enclosing class (pode acessar membros private da classe encapsuladora)

As letras B e E são as corretas.

b- está correta porque uma classe interna local de método “pode” ser abstrata, apesar de significar que a subclasse da classe interna deve ser criada se a classe abstrata é para ser usada (então uma classe interna local de método abstrata provavelmente não tem utilidade).
e - está correta porque uma classe interna local de método funciona como qualquer classe interna - tem um relacionamento especial com uma instância da classe encapsuladora, por isso pode acessar todos os membros da classe encapsuladora.

a - está errada porque uma classe interna local de método “pode” mas não “tem” que ser declarada “final”.
c/d - estão erradas porque uma classe interna local de método não pode ser declarada “static” ou “public” (lembre-se que você não pode marcar variáveis locais como “public”).

Espero que tenha ajudado! :wink:

Ironlynx

Tô vendo que comprar esse livro da certificação traduzido não é pouca furada não… :?

D

pois é pessoal…tem que tomar cuidado!!..

Ana…obrigado pelas comparações.

Criado 6 de abril de 2004
Ultima resposta 13 de abr. de 2004
Respostas 4
Participantes 3