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??
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
ana_abrantes
De novo, acho que o seu livro tem algum problema.
Deve ser a tradução!
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!
Ironlynx
Tô vendo que comprar esse livro da certificação traduzido não é pouca furada não… :?