Erro no livro da Kathy Sierra p.125 Certificação Sun para Programador Java 6. Guia de Estudo

6 respostas
rafacyber

Pessoal Bom dia!

Acho que encontrei um erro no livro, se alguém puder verificar, ficarei muito grato. Na página 125, no capítulo 3: Atribuições, é dado este exemplo:

class Bar {
    int barNum = 28;
}

class Foo {

    Bar myBar = new Bar();

    void changeIt(Bar myBar){
        myBar.barNum = 99;
        System.out.println("myBar.barNum in changeIt is" + myBar.barNum);
        myBar = new Bar();
        myBar.barNum = 420;
        System.out.println("myBar.barNum in changeIt is now " + myBar.barNum);
    }

    public static void main(String [] args){
        Foo f = new Foo();
        System.out.println("f.myBar.barNum is " + f.myBar.barNum);
        changeIt(f.myBar);
        System.out.println("myBar.barNum after changIt is " + f.myBar.barNum);
    }
}

Acho que o erro se encontra na linha 20 onde falta a variável de referência f no código seguinte:

f.changeIt(f.myBar);

Então, acredito que o código desse exemplo é:

class Bar {
    int barNum = 28;
}

class Foo {

    Bar myBar = new Bar();

    void changeIt(Bar myBar){
        myBar.barNum = 99;
        System.out.println("myBar.barNum in changeIt is" + myBar.barNum);
        myBar = new Bar();
        myBar.barNum = 420;
        System.out.println("myBar.barNum in changeIt is now " + myBar.barNum);
    }

    public static void main(String [] args){
        Foo f = new Foo();
        System.out.println("f.myBar.barNum is " + f.myBar.barNum);
        f.changeIt(f.myBar);
        System.out.println("myBar.barNum after changIt is " + f.myBar.barNum);
    }
}

Ficarei muito grato se alguém puder confirmar essa correção. Java já é bastante difícil para quem inicia, mais difícil com erro! :wink:

6 Respostas

Hellmanss

O erro é visivel, porém Java é dificil no Ínicio, mas se vc está no inicio, não é o livro mais indicado… Se vc leu o prefácio, viu que está escrito que não é um livro para iniciante.

C

Boa tarde

Bom pelo que analisei do código esta errado sim, porque o método changeIt é um método de instancia, então ele deve ser invocado a partir de uma referência de instancia.

Bom mas tome cuidado porque este livro é voltado para certificação, então pode realmente se tratar de um pegadinha para ver se você repara nas corretas chamadas de métodos.

Falou.

T

Olá rafacyber,

Sim, o erro está mesmo na linha 20 e a correção que você apontou está corretíssima. :thumbup:

LPJava

aproveita e manda uma nota para kathy la no javaranch.com, os autores do livro sempre estao por la.

note: até eles erram :wink:

rafacyber

Obrigado a todos vocês pela atenção. :smiley:

tinorberto

Eu já vi varios erros na edição traduzida, além de erros de grafia, no capitulo sobre threads, eles comeram o h, tem varias escritas treads… flw

Criado 18 de janeiro de 2010
Ultima resposta 19 de jan. de 2010
Respostas 6
Participantes 6