Antes de mais nada, foi uma sugestão. Há outras formas, algumas também
corretas (outras nem tanto) de fazer. Só quis dar um exemplo que te
orientasse a buscar as entidades que participam do problema e identificar
quais as suas responsabilidades.

Suponha por exemplo que você está fazendo um saque bancário (na vida real).

Você teria como participantes você mesmo (cliente), o caixa automático e o
dinheiro em si passando de um para o outro. Além disso há a conta, onde fica
registrado o saldo. Você também pode definir que você vai guardar o dinheiro
na carteira. Tanto faz. Você deve identificar o que é RELEVANTE para o seu
sistema, ou seja, um modelo. Um modelo é como uma maquete. Você representa
de forma minimalista o que interessa para resolver o problema e descarta
atributos desnecessários.

No saque, você pede um valor ao caixa, ele desconta da sua conta e te
entrega.

Então uma solução poderia ser:

cliente.sacar(caixa);
método sacar:
public void sacar(Caixa caixa) {
   caixa.cartao(meuCartao);
   caixa.senha(minhaSenha);
   caixa.operacao(saque);
   minhaCarteira = minhaCarteira + caixa.quantia(50);
}

Outra solução poderia ser:

Conta conta = Banco.getConta(agencia, numero);
conta.saque(50);
Carteira carteira = cliente.getCarteira();
carteira.adiciona(50);

Vê? Em uma solução eu não precisei do banco e tinha cartão. Na outra eu não
tinha cartão mas usei o banco. As duas estão corretas.
Em nenhuma delas eu fiz algo tipo:

cartao.sacarDinheiro(50)
ou
dinheiro.senha("XXX");

porque o cartão não saca e dinheiro não tem a ver com senha. ;-)

Quanto à sua dúvida, posso já ter respondido, mas caso não, vamos abstrair o
problema.

public int duplica(XXXXXXX) {
    return 2*a;
}

O que você escreveria no lugar do "XXXXXXX" para o método funcionar?

Peter P. Lupo
http://craftnicely.blogspot.com - http://sites.google.com/site/pplupo
 <http://sites.google.com/site/pplupo>MPS.BR Authorized Implementation
Practitioner<http://www.softex.br/mpsbr/_profissionais/MPS.BR_certificados_de_arovacao_prova_P2-MPS.BR.pdf>-
Certified
ScrumMaster <http://www.scrumalliance.org/pages/certified_scrummaster>
 <http://www.scrumalliance.org/pages/certified_scrummaster>Oracle Certified
Associate, Java SE 5/SE
6<http://in.sun.com/training/certification/java/scja.xml> -
Java Black Belt <http://www.blackbeltfactory.com/ui#!User/pplupo>
 <http://www.blackbeltfactory.com/ui#!User/pplupo>+55 (021) 81742487



2011/4/24 Augusto Vanderley <[email protected]>

> Então no caso a classe Personagem que possui o método comprarEspada?
> Não entendi como fazer o método recebendo o parâmetro loja. :S
>
> Em 24 de abril de 2011 22:01, Peter P. Lupo <[email protected]> escreveu:
>
> Augusto,
>>
>> É importante identificar quem faz o que. Quem compra as espadas é o
>> personagem. E ele as compra da loja. Então uma chamada do tipo:
>>
>> personagem.comprarEspada(loja)
>>
>> faz mais sentido pois o personagem é quem irá efetuar a compra em uma
>> loja.
>>
>> A loja, conforme é pedido, deve ter vários itens. Você não deve modelar
>> uma loja, vc deve modelar um jogo. Neste jogo você encontra personagens,
>> lojas, espadas e outros itens, cada um com seu comportamento definido dentro
>> do esperado. ;-)
>>
>> Veja se isto te ajuda a identificar quais métodos vão em quais classes.
>>
>> Abraço
>>
>> Peter P. Lupo
>> http://craftnicely.blogspot.com - http://sites.google.com/site/pplupo
>>  <http://sites.google.com/site/pplupo>MPS.BR Authorized Implementation
>> Practitioner<http://www.softex.br/mpsbr/_profissionais/MPS.BR_certificados_de_arovacao_prova_P2-MPS.BR.pdf>-
>>  Certified
>> ScrumMaster <http://www.scrumalliance.org/pages/certified_scrummaster>
>>  <http://www.scrumalliance.org/pages/certified_scrummaster>Oracle
>> Certified Associate, Java SE 5/SE 
>> 6<http://in.sun.com/training/certification/java/scja.xml> -
>> Java Black Belt <http://www.blackbeltfactory.com/ui#!User/pplupo>
>>  <http://www.blackbeltfactory.com/ui#!User/pplupo>+55 (021) 81742487
>>
>>
>>
>> 2011/4/24 Cleiton Menezes <[email protected]>
>>
>>> também gostei deste método!!!!
>>>
>>> Em 24 de abril de 2011 21:46, Felipe Costa 
>>> <[email protected]>escreveu:
>>>
>>> Você consegue acessar os dados dos personagens pela main porque você está
>>>> instanciando Personagem na main.
>>>>
>>>> Bem, existe algumas formas de fazer isso. Uma delas seria você passar
>>>> como pararametro o objeto pessoa e consultar o saldo dentro do método:
>>>> Espadas espadas = new Espadas;
>>>> espadas.comprarEspadas(p);
>>>>
>>>>
>>>> Abs
>>>> --
>>>> Felipe Costa
>>>> Undergraduating in Computer Science at UFRJ
>>>> Black belt <http://www.blackbeltfactory.com/ui#User/fcosta> on
>>>> JavaBlackBelt  <http://www.blackbeltfactory.com/ui#User/fcosta>
>>>>
>>>>
>>>>
>>>> 2011/4/24 Augusto Vanderley <[email protected]>
>>>>
>>>>> Estou com uma dúvida sobre a lista, espero que alguém possa me ajudar.
>>>>> Vou dar um exemplo.
>>>>>
>>>>> Eu criei no método main um objeto de Personagem usando:
>>>>> "Personagem p1 = new Personagem"
>>>>> Consigo acessar os dados do personagem pela main ou acessar seus
>>>>> métodos estáticos.
>>>>> Na classe "Espadas" criei um método comprarEspadas que precisa
>>>>> verificar o saldo do personagem p1 através de um método getSaldo().
>>>>>
>>>>> Como fazer para chamar o método getSaldo? Preciso criar denovo o objeto
>>>>> p1? Faço a gambiarra de deixar o método static getSaldo já que só temos um
>>>>> personagem mesmo?
>>>>>
>>>>> Espero que tenham compreendido minha dúvida e possam me ajudar.
>>>>> Abraços
>>>>> Augusto
>>>>>
>>>>> --
>>>>> 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.
>>>>>
>>>>
>>>>  --
>>>> 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.
>>>>
>>>
>>>  --
>>> 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.
>>>
>>
>>  --
>> 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.
>>
>
>  --
> 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.
>

-- 
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