Olá pessoal,
Sei que tem muitos tópicos sobre o livro SCJP6 da Kathy Sierra pt_BR em relação à erros de tradução e etc, porém o meu problema são sobre os exercícios que supostamente estão errados, e assim trocar idéias para poder me assegurar que não terei dúvidas e também ajudar outros colegas.
Primeiramente quero dizer que sei que o exame para a SCJP6 é inglês, mas meu livro é português o que pode ser meio controverso, então quero deixar claro que não é está a discussão. Faz um tempo que eu tenho o livro e já li uma boa parte, porém não estava levando muito a sério, agora comecei a leitura novamente e estou me aplicando nos exercícios, apesar de mesmo traduzido, o conteúdo em si é muito bom e não senti dificuldades para assimilar os conceitos, mas fiquei completamente desanimado ao ver os exercícios que ná minha opinião são confusos e não cumprem com o papel de fortalecer os conceitos. Nos testes do cap1 encontrei no mínimo três teste mal feitos, que não sei se estão com erros de edição, ou se eu que não entendi o propósito do teste, sei lá, por isso conto com a ajuda de vocês.
Desculpa escrever tanto, mas se fazia necessário, vou colocar o código do teste, a resposta que o livro sugere ser a correta, minha resposta e minha justificativa sobre o mesmo.
O primeiro é o teste de número 2 da página 44, que extramente básico, porém a resposta sugerida pelo livro vai contra o que apresentado em certa parte.
O enunciado: Quais nomes de métodos obedecem ao padrão JavaBeans?
A) addSize B)getcust C)deleteRep D)isColorado E)putDimensions
Reposta do livro: B e D usam prexifos válidos get e is.
Minha resposta: D
por quê? primeiro, a questão não pergunta qual prefixo é válido e sim o padrão, logo getcust não se enquadra, mesmo tendo o prefixo correto o restante deveria respeitar o padrão camelCase, ou seja, getCust, como encontrado ná página 5 do livro onde está escrito: para completar o nome de um método getter ou setter, deve-se mudar a primeira letra do nome da propriedade para maíscula e depois juntar a ela o prefixo adequado(get, is ou set)
Isso poderia ser um erro simplesmente de edição, então se alguém tiver o livro, peço que verifique e tire está dúvida.
Outra questão é a 5 da página 45:
Dados os dois arquivos mostrados a seguir:
package pkga;
public class Foo{
int a = 5;
protected int b = 6;
public int c = 7;
{
//
//
package pkgb;
import pkgA.*;
public Class Baz.*;
public static void main (String [] args){
Foo f = new Foo();
System.out.print (""+f.a);
System.out.print (""+f.b);
System.out.println (""+f.c);
}
}
Qual é o resultado? (Marque todas as corretas)
A) 5 6 7 B) 5 seguido de uma exceção
C) Ocorre falha na compilação com um erro na linha 7
D) Ocorre falha na compilação com um erro na linha 8
E) Ocorre falha na compilação com um erro na linha 9
F) Ocorre falha na compilação com um erro na linha 10
Resposta do livro: D e E são alternativas corretas. A variável a tem acesso default, por isso não pode ser acessada de fora do package. A variável b tem acesso protegido em pkgA
minha resposta: C, D, E e F
Justificativa: É obvio que ocorre erro de compilação na linha 7, pois é não possível criar um objeto da classe Foo pois repare no fechamento de chaves dela, portando não teria como compilala (erro de edição! será?) sem falar que a importação do pacote está errada, além de a declaração da classe Baz ser ridícula!
Outra questão é a 6:
Dado o código a seguir:
public class Eletronic implements Device
{public void doIt(){}}
abstract clas Phone1 extendeds Eletronic
{}
abstract class Phone2 extends Eletronic
{public void doIt (int x){}}
class Phone3 extends Eletronic implements Device
{public void doStuff(){}}
interface Device {public void doIt();}
Qual é o resultado? (Marque todas as corretas)
A) A compilação é bem sucedida.
B)Ocorre falha na compilação com um erro na linha 1
C)Ocorre falha na compilação com um erro na linha 3
D)Ocorre falha na compilação com um erro na linha 5
E)Ocorre falha na compilação com um erro na linha 7
F)Ocorre falha na compilação com um erro na linha 9
Resposta do livro: A está correta; todas são declarações válidas.
B,C,D,E e F estão incorretas com base nas informações fornecidas acima.
MInha resposta: C, E
Justificativa: a última coisa que aconteceria é uma compilação bem-sucedida, (não sei se é porquice de edição ou se é pegadinha), é claro que ocorre erro de compilação na linha 3 ou inventaram outras palavras-chave para o java. Também ocorre erro na linha 7, pois a a classe Phone3 implementa Device, porém cadê a implementação do método doIt, pois ela não é abstract.
Bom é isso, não sei se é piração minha, só sei que fiquei decepcionado, pois o livro é bem escrito, mas logo nos exercícios, têm umas lambanças dessas. Peço que o pessoal do Fórum, me ajude a análisar as respostas, ou até mesmo descobrir se é erro de edição mesmo ( o que eu acho que seria porquice)
