Ligando objectos

oi

hoje minha duvida é um pouco mais complicada(pelo menos para mim), é que eu tava fazendo um pograma que gere uma biblioteca e na parte da requisição surgiu um problema, problema esse que está no relacionamento do hashmao<string, livro>(a string é um código do livro) e do outro hashmap<string, aluno>(a string é um codigo tb e o aluno é o utente)

public void RequisitarLivro()
{
    String code;
    String code1;
    int op;
    
    System.out.println("Insira o código do livro: ");
    code=Input.lerString();
    
     if( !mapLivro.containsKey(code) ){
        System.out.println("Erro!!! Não existe nenhum livro com esse código!");
        Main.MenuPrincipal();}
     
        else{
    
    System.out.println("Pretende requisitar o livro"+mapLivro.get(code)+"da biblioteca??");
    System.out.println("Se não digite 3, caso contrario digite outro numero\n");
    op=Input.lerInt();
    if(op==3)
        Main.MenuPrincipal();
    else{
         System.out.println("Insira o código de utente");
         code1=Input.lerString();
          if( !mapAluno.containsKey(code1) ){
              System.out.println("Aluno não encontrado");
              Main.MenuPrincipal();}
          //else
            //Aqui deveria ser qualquer coisa a relacionar o utente com o livro a requisitar
            
      }    
  }

}

postem aí qlq coisa que minha cabeça não dá mais por hoje…

obrigado

-TUGA-

ué, não seria isso:

Livro livro = mapLivro.get(code)
Aluno aluno = mapAluno.get(code1)

E ai vc relaciona os objetos livro e aluno da maneira como quizer (ou como esta modelado seu sistema), algo no estilo:

aluno.emprestar(livro)

até parece muito facil,mas dessa maneira vou ter de ter um metodo na class aluno e isso levanta-me 2 questões:

1- de que tipo vai ser o parametro que vai receber o metodo.tipo objecto?? como ponho.

2 - Dado que o aluno está num hasmap esse tal metodo tlv ficasse melhor num arraylist não?tipo Arraylist<?> requisitos;
requisitos.add(livro)???

obrigado

postem aí qlq coisa

-TUGA-

Pensa assim, quem vai emprestar o livro?! o aluno certo?! então o aluno empresta o livro… ele tem um método que empresta livro então logo o parâmetro é do tipo livro.
E ai o que seria o aluno emprestar o livro?! ai é a implementação desse método, pode ser cadastrar um emprestimo no banco de dados ou incluir o livro numa lista de livros emprestados pelo aluno, etc, isso depende dos requisitos da sua aplicação.
Até mesmo essa de o aluno empresta um livro, tem gente que pode ver isso como: o livro que é emprestado e não o aluno que empresta, ai pode ter ao inves de um método no aluno, um método no livro do tipo: “emprestarParaAluno(Aluno a)”
A analise do seu sistema não é uma coisa “exata”, não existe uma receita, uma formula certa, existe sim praticas boas, mas nada que diga 100% que tem que ser assim, não tem como eu te dizer como livro e aluno vão se ligar, isso depende dos requisitos, da sua analise.

entende?

sobre o HashMap, vc sabe o que faz um Map?! ele é tipo um indexador, vc tem la dentro um monte de alunos, e ele vai buscar esses alunos de acordo com uma chave, no caso o nome dele. Quando vc da get no Map, o aluno ligado aquela chave vai vir… essa parte eu acho que esta correta, e ai dentro de Aluno vc pode ter uma lista de livros emprestados por ele, ai sim poderia ser um ArrayList

bele?!

hum ok axo que percebi mas se ao tiver programando me surgir alguma duvida eu posto…

Obrigado

-TUGA-