class Putter {
public static void main(String[] args) {
Bango b1 = new Bango();
Bango b2 = new Bongo();
Bango b3 = new Bingo();
\\insert code
}
}
cass Bango { }
cass Bongo extends Bango { }
cass Bingo extends Bongo { }
Qual dos código a seguir, se substituirmos ao \\insert code, não irá compilar o código?
A. Bongo b4 = b2;
B. Bongo b5 = (Bongo) b2;
C. Bango b6 = b3;
D. Bango b7 = (Bango) b3;
E. Bingo b8 = b3;
F. Bingo b9 = (Bingo) b3;
G. Bango b10 = (Bongo) b3;
Analisando uma a uma: (A) b2 é um Bango, logo, para poder atribuir a Bongo, precisa de um Casting (Bongo), como é feito na opção (B). A opção (C) b6 e b3 são do tipo Bango, na (D) é feito o Casting, já na (E) acontece o mesmo que na (A), ou seja, b8 é um Bingo e b3 um Bango, necessitando de um casting. (F) está sendo um casting correto e na (G) é feito um casting do Bongo, que é um Bango.
Eu e mais alguns colegas de trabalho iniciamos um grupo de estudo para a certificação SCJP. Postaremos aqui todas questões estudadas, suas respectivas respostas e nossos comentários sobre elas. Espero que seja tão útil para quem lê, quanto é para nós...
quinta-feira, 29 de julho de 2010
Questão 4 - Object Casting
Marcadores:
Object Casting
Questão 3 - Try Catch
System.out.println("1");
try {
System.out.println("2");
throw new FileNotFoundException();
}
System.out.println("3");
catch(EOFException e) {
System.out.println("4");
}
catch (FileNotFoundException e ) {
System.out.println("5");
}
A. O código não compila
B. Saída: 125
C. Saída: 124
D. Saída: 1235
Até poderíamos ter algum código compilado, se o System.out.println("3"); não estivesse no meio do bloco try catch, cuidado com este tipo de pegadinha, pois se não prestarmos atenção nisto, responderíamos certamente a opção D ou B, mas o bloco try catch está sintaticamente errado, logo não há como compilar , opção A.
try {
System.out.println("2");
throw new FileNotFoundException();
}
System.out.println("3");
catch(EOFException e) {
System.out.println("4");
}
catch (FileNotFoundException e ) {
System.out.println("5");
}
A. O código não compila
B. Saída: 125
C. Saída: 124
D. Saída: 1235
Até poderíamos ter algum código compilado, se o System.out.println("3"); não estivesse no meio do bloco try catch, cuidado com este tipo de pegadinha, pois se não prestarmos atenção nisto, responderíamos certamente a opção D ou B, mas o bloco try catch está sintaticamente errado, logo não há como compilar , opção A.
Marcadores:
Exception,
Pegadinhas
quarta-feira, 28 de julho de 2010
Questão 2 - Classes Nativas
É correto afirmar:
A. A classe Java.io.FileReader tem um método para ler um linha de dados
B. A classe Java.io.BufferedReader tem um método para ler um linha de dados
C. A classe Java.io.FileReader tem um método read()
D. A classe Java.io. BufferedReader tem um método read()
E. A classe Java.io. BufferedReader pode ser instanciada com um Java.io.File como parâmetro do construtor
F. A classe Java.io. BufferedReader pode ser instanciada com um Java.io.FileReader como parâmetro do construtor
Ao analizar as respectivas classes, verifica-se que a BufferedReader possui um método readLine(), read() e seu construtor aceita um Reader. Já a classes FileReader, possui um método read() e extend a classe Reader. Com isso pode-se dizer que as respostas certas são B, C, D e F, observando que a F está certa indiretamente, pois FileReader por extender Reader, é considerada também um Reader.
Marcadores:
Classes Nativas
Questão 1 - Herança e Encapsulamento
Temos:
Class Zing { Hmpf h; }
Class Woop extends Zing{}
Class Hmpf {Zing z; }
Class Woop extends Zing{}
Class Hmpf {Zing z; }
Quais estão corretas?
A. Woop é um Hmpf e é um Zing
B. Zing é um Woop and tem um Hmpf
C. Hmpf tem um Woop e Woop tem um Zing
D. Woop tem um Hmpf e Woop tem um Zing
E. Zing tem um Hmpf e Woop é um Zing
F. Hmpf tem um Zing e Woop tem um Hmp
Pode-se concluir com o código acima que Zing tem um Hmpf, Woop é um Zing, logo também tem um Hmpf, e Hmpf tem um Zing. Com base neste raciocínio, as únicas respostas que estão corretas seria a opção E e F.
Marcadores:
Encapsulamento,
Herança
Assinar:
Postagens (Atom)