dado o código a seguir, selecione todas as alternativas corretas:
a - erro de compilação na linha 4
b - erro de compilação na linha 10
c - compila, roda e lança runtime exception
d - compila, roda e imprime Inner Inner.metodo
e - compila, roda e não imprime nada
f - erro de compilação na linha 18
1 class Base {
2 public void metodo() {
3 class Inner {
4 Inner() {
5 System.out.print ("Inner ");
6 }
7 public void metodo() {
8 System.out.print ("Inner.metodo ");
9 }
10 Inner i = new Inner();
11 }
12 }
13 }
14
15 public class Teste12 {
16 public static void main (String [] args) {
17 Base b = new Base();
18 b.metodo();
19 }
20 }
e - compila, roda e não imprime nada
Se colocar Inner i = new Inner(); fora da Inner-class, ai imprime "Inner ".
correto!
[quote=“leonardom”]
Se colocar Inner i = new Inner(); fora da Inner-class, ai imprime "Inner [/quote]
como? por favor, dê um exemplo.
1 class Base {
2 public void metodo() {
3 class Inner {
4 Inner() {
5 System.out.print ("Inner ");
6 }
7 public void metodo() {
8 System.out.print ("Inner.metodo ");
9 }
10 }
11 [b] Inner i = new Inner(); <--- [/b]
12 }
13 }
14
15 public class Teste12 {
16 public static void main (String [] args) {
17 Base b = new Base();
18 b.metodo();
19 }
20 }
beleza, lembrando que uma classe local à um método só pode ser instanciada dentro do próprio método
Verdade, isso é muito importante lembrar.
Valeu!!!