fenloki:
Artur Martini:
fenloki:
Artur Martini:
fenloki:
Galera eu tenho a Classe rede e a classe amigo, estou com duvida para entender o parametro do metodo
public void bloquear(Amigo amigo)
{
int posicao = busca(amigo.getNome());
if(posicao >= 0)
{
rede.remove(posicao);
}
}
public int busca(String nome)
{
for(int i = 0; i < rede.size(); i++)
{
if(nome.equals(rede.get(i).getNome()))
return i;
}
JOptionPane.showMessageDialog(null, nome + "não encontrado!", "Rede", JOptionPane.ERROR_MESSAGE);
return -1;
A duvida eh, no metodo bloquear, o parametro estaria recebendo um objeto amigo do tipo Amigo eh isso?
Exatamente, talvez se interpretar que está recebendo referência de um objeto da classe Amigo fique mais fácil de compreender.
Certo, entao o parametro recebe um objeto da classe Amigo, ai ele acessa o atributo nome deste objeto, vai para o metodo busca e se encontrar o objeto com o mesmo dado no atributo nome, retorna a posicao e remove. Estou certo? =D
Sim.
rede deve ser uma lista que você criou com o nome dos amigos, correto?
Dai observe que o método busca retorna a posição do amigo informado, se não for encontrado ele retorna -1
No método bloquear tem uma estrutura de decisão "If" se for maior que 0 ele pega essa posição e exclui da lista.
Att.
Artur Martini
Certo, agora outro metodo aqui amigo.
public void enviarMensagem(String nome, String mensagem)
{
int posicao = busca(nome);
if(posicao >= 0)
{
rede.get(posicao).setMensagem(mensagem);
}
}
no caso de rede.get(posicao), eu nao tenho metodos gets criados dentro desta classe Rede, entao como o java ta interpretando este rede.get(posicao)? Ele entende que toda vez que eu digito a palavra get(algo) ele retorna oq eu digitar dentro do parametro get? Seria como se fosse um get interno deste metodo eh isso?
Por isso que perguntei se rede é um objeto da classe List ou suas subclasses.
Você deve ter ficado na dúvida por causa que você sempre cria os Getters e Setters quando tem atributos privados, porém a classe lista já tem um método que retorna o objeto e quem criou essa classe definiu esse método com o nome get, mas poderia ser qualquer outro nome, abaxi, xpto e etc.
Na verdade rede é só uma referência a um objeto do tipo List, onde já contém o método get, não precisando implementar novamente.
Esse método recebe como parâmetro um número do tipo int, onde esse número é a posição do objeto que você quer pegar.
Caso queira saber mais detalhes pode pesquisar na documentação da oracle, só jogador no google o nome da classe.
Existe ainda algumas variações desse próprio método que ai entra na parte de sobrecarga.
Ou se você quiser algo personalizado, pode reescrever esse método, mas acredito não ser a necessidade, porém é bom saber que existe a possibilidade
Tente estudar um pouco mais sobre sobreescrita e sobrecarga de métodos e construtores.
Att.
Artur Martini