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