Cara, eu só tentei entender o exercicio. Mandei as minhas dúvidas. Quando eu
tentei fazer novamente eu não consegui. Tentei novas formas, mas eu não
queria que ninguém escrevesse nada para eu seguir ou que me pedisse pra
tentar outras mensagens(ao objeto). Está questão estava nesse rumo. Queria
fazer a questão com o que foi aprendido. Foi aí a minha dificuldade. Talvez
a dificuldade no enunciado no final tenha sido apenas minha vendo que mais
ninguém da turma "reclamou" a não ser essas pessoas.
Assim como todos, eu procuro fazer as listas e estudar mediante o meu tempo
disponível. Não costumo deixar pra última hora pra fazer.
Pra mim não foi legal o enunciado da letra e). O resultado (não foi só eu)
foi ficar tentando pra ver se o eclipse para de reclamar. Aí o entendimento
passa a ser menor uma vez que vc começa a brigar com o programa e tenta
resolver o problema com tentativa e erro. Aconteceu isso com outras pessoas.
Tem uma hora que vc não quer ficar escrevendo aqui, daí não entendeu,
escreve denovo, aí um acaba mostrando sem querer o caminho das pedras e toca
o barco até a próxima lista. Neste caso eu vou esperar a resolução do
professor explicando os pontos para ver onde eu errei e estudar isso.

Que fique claro pra quem não entender que não estou criticando este forum.
Se achar, é porque não entendeu o que eu escrevi.

Obrigado por responder,
Abraços a todos.

Leonardo
Java "White" belt. (rsrs)



Mas, tudo bem. Estou me esforçando, lendo material e acredito que estou
melhorando.

Em 28 de abril de 2010 00:10, Peter P. Lupo <[email protected]> escreveu:

> Leonardo, vc pediu ajuda a algum monitor além daquele e-mail que vc mandou
> pra lista a 4 dias?
>
> Na próxima lista, procure fazer com mais antecedência, já que vc está com
> dificuldade na matéria.
>
> Abraço
>
> Peter P. Lupo
> http://craftnicely.blogspot.com - http://sites.google.com/site/pplupo
> MPS.BR Authorized Implementation Practitioner - Certified ScrumMaster
> Sun Certified Java Associate - Java Brown Belt
> +55 (021) 81742487
>
>
> 2010/4/27 Leonardo Gonçalves Costa <[email protected]>
>
> Segurei até onde eu pude. Tentei, tentei e vou enviar a lista "faltando".
>>
>> Não consigo entender mesmo essa letra e). Não consegui usar nenhum dos
>> métodos propostos aqui e não consegui entender as "mensagens novas" (não
>> comentadas em sala) aos objetos. Peço perdão, mas esforço não faltou.
>>
>> Abraço.
>>
>>
>>
>> Em 26 de abril de 2010 12:45, Miguel Jonathan 
>> <[email protected]>escreveu:
>>
>> O método equals() é usado em classes em que é possível haver dois objetos
>>> distintos (ou seja, duas instâncias em locais diferentes da memória) mas que
>>> devem ser considerados iguais para fins da aplicação,
>>>
>>> Caso típico são as strings. Se eu tenho duas strings criadas assim:
>>> String nomeUniversidade = new String("UFRJ");
>>> String minhaUniversidade = new String("UFRJ");
>>>
>>> haverá dois objetos distintos, em endereços diferentes.
>>> Mas para todos os efeitos, gostaríamos de considerar as duas strings como
>>> iguais, por exemplo, se quisermos saber se minhaUniversidade é igual a
>>> nomeUniversidade, a resposta deveria ser true.
>>>
>>> Mas se usarmos o comparador ==, a resposta será false, pois são objetos
>>> diferentes:
>>> minhaUniversidade == nomeUniversidade dá false.
>>> Aí entra o método equals, onde minhaUniversidade.equals(nomeUniversidade)
>>> retorna true!
>>>
>>> No caso específico dos enums, isso nunca ocorre, porque cada instância é
>>> única, por isso não há necessidade de haver método equals com enums.
>>>
>>> Jonathan
>>>
>>> 2010/4/26 Peter P. Lupo <[email protected]>
>>>
>>> Eu vou partir da sua conclusão para explicar o que está havendo:
>>>>
>>>> "Enfim, me alonguei muito mais do que pretendia, mas fica o aviso ai pra
>>>> quem for usar o ".equals"... tem que usar "toString" se não não funciona
>>>> !!!"
>>>>
>>>> E vou fazer um acréscimo para ficar correto:
>>>>
>>>> pra quem for usar o ".equals"... tem que usar "toString" se não não
>>>> funciona *ao comparar com outra String* !!!
>>>>
>>>> Sim, pois BOY é uma instância da classe Cargo e nome é uma instância da
>>>> classe String. A comparação de Cargo com String tem que dar false assim 
>>>> como
>>>> cadeira.equals(mesa) tem que dar false! ;-)
>>>>
>>>> Isso não significa que sempre que vc for usar o equals você tem que usar
>>>> o toString junto. Na verdade o ideal é não fazer isto e deixar que uma
>>>> instância saiba se comparar (através de informações como sua classe,
>>>> subclasse e valores de seus atributos) a instâncias de outras classes.
>>>>
>>>> Imagina se vc muda o toString de Cadeira para retornar a String "Sou uma
>>>> mobília" e faz o mesmo com Mesa.
>>>>
>>>> Se você fizer cadeira.equals(mesa) retornaria true quando deveria
>>>> retornar false.
>>>>
>>>> Então o ideal é não usar o toString na comparação a menos que o que vc
>>>> queira saber é realmente se uma determinada instância retorna um valor
>>>> específico no toString, que é o caso do exercício da lista.
>>>>
>>>> Respondendo suas outras observações:
>>>>
>>>> (...)
>>>>  Bom, será mesmo que esse Cargo.BOY retorna uma String ?!", testei e vi
>>>> que era verdade.
>>>> (...)
>>>> Ai eu fui por partes, coloquei na classe SimulaFolha isto
>>>> "System.out.println(Cargo.BOY), e no consolhe aparecia certinho a palavra
>>>> "BOY".
>>>> (...)
>>>>
>>>> Isto não significa que Cargo.BOY retorna String. De fato, NÃO retorna!
>>>> Cargo.BOY é uma referência para uma instância do tipo Cargo.
>>>> O que acontece é que existe um método println que recebe objetos e chama
>>>> o .toString() internamente ao imprimir na console.
>>>> O resultado da chamada que vc fez é o equivalente a
>>>> System.out.println(Cargo.BOY.toString());
>>>>
>>>> Este é um comportamento bastante comum na API. Ao se precisar
>>>> representar um objeto de uma forma inteligível, o toString é comumente
>>>> chamado. O mesmo acontece se você tentar concatenar um objeto com uma
>>>> string:
>>>>
>>>> "Este objeto é um " + Cargo.BOY;
>>>>
>>>> O toString de BOY é chamado "automagicamente" pelo compilador, sendo
>>>> esta chamada equivalente a
>>>>
>>>> "Este objeto é um " + Cargo.BOY.toString();
>>>>
>>>>
>>>> E realmente este parece ter sido o método em que o pessoal teve mais
>>>> dificuldade mas até agora não vi ninguém com ESTA dificuldade. :-P
>>>>
>>>>
>>>> Abraço
>>>>
>>>> Peter P. Lupo
>>>> http://craftnicely.blogspot.com - http://sites.google.com/site/pplupo
>>>> MPS.BR Authorized Implementation Practitioner - Certified ScrumMaster
>>>> Sun Certified Java Associate - Java Brown Belt
>>>> +55 (021) 81742487
>>>>
>>>>
>>>> 2010/4/26 Thiago Carvalho <[email protected]>
>>>>
>>>> Pelo visto o método "public static Cargo obtem(String nome" é de longa a
>>>>> parte mais difícil da lista. Eu gostaria apenas de fazer um comentário 
>>>>> sobre
>>>>> como o ".equals" pode ser altamente traiçoeiro. Como o professor pediu, eu
>>>>> não vou colocar meu código aqui exatamente pelos motivos que ele 
>>>>> mencionou,
>>>>> MAS dentro do método obtem, eu criei um vetor dos 4 tipos de cargo e usei 
>>>>> o
>>>>> ".equals" para comparar esses vetores, um a um, com a String nome do
>>>>> argumento, caso ele não encontrasse nenhum dos 4, ele retornava null. O
>>>>> compilador não reclamou, mas pra qualquer coisa que eu digitasse na String
>>>>> nome, inclusive "boy", "motorista" ou os outros 2, ele retornava null. Ai 
>>>>> eu
>>>>> fui por partes, coloquei na classe SimulaFolha isto
>>>>> "System.out.println(Cargo.BOY), e no consolhe aparecia certinho a palavra
>>>>> "BOY".Bom, depois de umas 3 horas fazendo mil testes e modificações (fui
>>>>> filtrando varias partes do codigo pra tentar achar o erro), eu acabei
>>>>> descobrindo que se você pedir pra ele imprimir Cargo.BOY, ele imprime a
>>>>> String "BOY" usando o metódo toString (que ja está automaticamente 
>>>>> declarado
>>>>> pelo fato de ser enum, e sempre é igual ao nome do enum), mas quando você
>>>>> usa "Cargo.BOY.equals(nome)" (nome é a String declarada no inicio do 
>>>>> método
>>>>> obtem) ele compara o OBJETO BOY com a String nome e nunca retorna 
>>>>> verdadeiro
>>>>> ! Eu sinceramente achei isso muito "cilada", porque quando todos os cargos
>>>>> retornavam null, a primeira coisa que eu pensei foi "Bom, será mesmo que
>>>>> esse Cargo.BOY retorna uma String ?!", testei e vi que era verdade. Depois
>>>>> fiquei rodando em várias outras partes do código, tentando mil coisas, pra
>>>>> no final descobrir que era só colocar "Cargo.BOY.toString().equals(nome)"
>>>>> que tudo ia funcionar. Na minha cabeça, como o ".equals" é um método da
>>>>> classe String, quando eu pedisse para comparar Cargo.BOY com alguma coisa,
>>>>> ele automaticamente ia usar o método toString do objeto BOY e retornar uma
>>>>> String e não o objeto inteiro.
>>>>>
>>>>> Enfim, me alonguei muito mais do que pretendia, mas fica o aviso ai pra
>>>>> quem for usar o ".equals"... tem que usar "toString" se não não funciona 
>>>>> !!!
>>>>>
>>>>> --
>>>>> You received this message because you are subscribed to the Google
>>>>> Groups "Comp 2 - Geral" group.
>>>>> To post to this group, send email to [email protected].
>>>>> To unsubscribe from this group, send email to
>>>>> [email protected]<comp2-geral%[email protected]>
>>>>> .
>>>>> For more options, visit this group at
>>>>> http://groups.google.com/group/comp2-geral?hl=en.
>>>>>
>>>>
>>>>  --
>>>> You received this message because you are subscribed to the Google
>>>> Groups "Comp 2 - Geral" group.
>>>> To post to this group, send email to [email protected].
>>>> To unsubscribe from this group, send email to
>>>> [email protected]<comp2-geral%[email protected]>
>>>> .
>>>> For more options, visit this group at
>>>> http://groups.google.com/group/comp2-geral?hl=en.
>>>>
>>>
>>>  --
>>> You received this message because you are subscribed to the Google Groups
>>> "Comp 2 - Geral" group.
>>> To post to this group, send email to [email protected].
>>> To unsubscribe from this group, send email to
>>> [email protected]<comp2-geral%[email protected]>
>>> .
>>> For more options, visit this group at
>>> http://groups.google.com/group/comp2-geral?hl=en.
>>>
>>
>>  --
>> You received this message because you are subscribed to the Google Groups
>> "Comp 2 - Geral" group.
>> To post to this group, send email to [email protected].
>> To unsubscribe from this group, send email to
>> [email protected]<comp2-geral%[email protected]>
>> .
>> For more options, visit this group at
>> http://groups.google.com/group/comp2-geral?hl=en.
>>
>
>  --
> You received this message because you are subscribed to the Google Groups
> "Comp 2 - Geral" group.
> To post to this group, send email to [email protected].
> To unsubscribe from this group, send email to
> [email protected]<comp2-geral%[email protected]>
> .
> For more options, visit this group at
> http://groups.google.com/group/comp2-geral?hl=en.
>

-- 
You received this message because you are subscribed to the Google Groups "Comp 
2 - Geral" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/comp2-geral?hl=en.

Responder a