Quais das seguintes declarações são ilegais? (escolha uma ou mais)
1.a. | friendly String s; |
1.b. | transient int i = 41; |
1.c. | public final static native int w(); |
1.d. | abstract double d; |
1.e. | abstract final double hyperbolicCosine(); |
Qual das seguintes declarações é correta?
2.a. | Uma abstract class não pode ter nenhum método final |
2.b. | Uma final classe não pode ter nenhum método abstrato |
Qual é a ‘mínima’ modificação que deverá ser feita no código abaixo para que ele compile corretamente?
1. final class Aaa 2. { 3. int xxx 4. void yyy() {xxx = 1;} 5. } 6. 7. 8. class Bbb extends Aaa 9. { 10. final Aaa finalref = new Aaa() 11. 12. final void yyy() 13. { 14. System.out.println(“In method yyy()"); 15. finalref.xxx = 12345; 16. } 17. }
3.a. | Na linha 1, remover o modificador ‘final’ |
3.b. | Na linha 10, remover o modificador ‘final’ |
3.c. | Remover linha 15 |
3.d. | Nas linhas 1 e 10, remover o modificador ‘final’ |
3.e. | O código será compilado como é, e nenhuma modificação é necessária |
Qual das seguintes statements são verdadeiras?
4.a. | Métodos transient não podem ser overridden |
4.b. | Métodos transient devem ser overridden |
4.c. | Classes transient não podem ser serialized |
4.d. | Variáveis transient devem ser estatic |
4.e. | Variáveis transients não são serialized |
Qual statements é verdadeiro sobre a aplicação abaixo?
1. class StaticStuff 2. { 3. static int x = 10; 4. 5. static { x += 5;} 6. 7. public static void main(string args[]) 8. { 9. System.out.println(“x = “ + x); 10. } 11. 12. static {x /= 5; } 13. }
5.a. | As linhas 5 e 12 nao compilarão, porque o nome do método e o type de retorno estão errados |
5.b. | A linha 12 não compilará, porque pode haver somente um inicializador static |
5.c. | O código compilará, e a execução produzirá a saída x = 10; |
5.d. | O código compilará, e a execução produzirá a saída x = 15; |
5.e. | O código compilará, e a execução produzirá a saída x = 3; |
Qual afirmação é verdadeira para o código abaixo?
1. class HasStatic; 2. { 3. private static int x = 100; 4. 5. public static void main(String args[]) 6. { 7. HasStatic hs1 = new HasStatic(); 8. hs1.x++; 9. HasStatic hs2 = new HasStatic(); 10. hs2.x++; 11. hs1 = new HasStatic(); 12. hs1.x++; 13. HasStatic.x++; 14. System.out.println(“x = “ + x); 15. } 16. }
6.a. | A linha 8 não compilará, porque ela é uma referencia static a uma variável private. |
6.b. | A linha 13 nao compilará, porque ele é uma referencia static para uma variável private |
6.c. | O programa compilará, e a saída será: x = 102; |
6.d. | O programa compilará, e a saída será: x = 103 |
6.e. | O programa compilará, e a saída será: x = 104 |
Dado o código abaixo, e não fazendo outra mudança, qual modificador de acesso ( public, protected, private) pode ser colocado antes de aMethod() na linha 3? Se a linha 3 for deixada como ela é, qual keyword pode ser colocada antes de ‘aMethod’ na linha 8?
1. class SuperDuper 2. { 3. void aMethod() { } 4. } 5. 6. class Sub extends SuperDuper 7. { 8. void aMethod() { } 9. }
1. package abcde; 2. 3. public class Bird { 4. protected static int referenceCount = 0; 5. public Bird() { referenceCount++; } 6. protected void fly() { /* Flap wings, etc.*/ } 7. static int getRefCount() { return referenceCount; } 8. }
Qual afirmação é verdadeira sobre a class Bird acima e a class Parrot abaixo?
1. package abcde; 2. 3. class Parrot extends abcde.Bird { 4. public void fly() { /* Parrot specific flight code. */} 5. public int getRefcount() { return referenceCount; } 6. }
8.a. | Compilação de Parrot.java falha na linha 4, porque o method fly() é protected na superclasse e classes Bird e Parrot estão no mesmo pakage. |
8.b. | Compilação de Parrot.Java falha na linha 4, porque o método fly() é protected na superclasse e public na suclasse e o método não pode ser ‘overhidden’ para ser public.’ |
8.c. | Compilação de Parrot falhará na linha 5, porque o método getRefCount() é static na superclasse e metidos static não podem ser ‘overhidden’para ser não-static. |
8.d. | O programa compilará e executará, mas surge uma runtime exceptions se o método fly() é sempre chamado na instancia da class Parrot. |
8.e. | Compilação de Parrot.Java tem sucesso, mas surge uma runtime exceptions se o método getRefCount() é sempre chamado na instância da class Parrot. |
Qual afirmação é verdadeira sobre a class Bird acima e sobre a class Nightingale abaixo:
1. pachage singers; 2. 3. class Nightingale extends abcde.Bird { 4. Nightingale() { referenceCount++; } 5. 6. public static void main(String args[]) { 7. System.out.print(“Before: “ + referenceCount); 8. Nightingale florence = new Nightingale(); 9. System.out.println(“ After: “ + referenceCount); 10. florence.fly(); 11. } 12. }
9.a. | O programa compilará e executará. A saída será: Before: 0 After: 2. |
9.b. | O programa compilará e executará. A saída será: Before: 0 After: 1 |
9.c. | Compilação de Nightingale falhará na linha 4, porque membros static não podem ser ‘overhidden’ |
9.d. | Compilação de Nightingale falhará na linha 10, porque o método fly() é protegido na superclasse |
9.e. | Compilação de Nightingale terá sucesso, mas surge uma exception na linha 10, porque o método fly() é protected na superclasse |
Copyright © 1998-2009 Dilvan Moreira