então, no principal é utilizado o nome e o fone; Eu preciso mudar o nome e o fone do registro para private e ainda continuar usando eles no principal. Como posso fazer isso?
publicclassPrincipal{VectorlistaTelefones;publicPrincipal(){listaTelefones=newVector();}publicvoidadicionarFone(){Stringnome,fone;BufferedReaderentrada=newBufferedReader(newInputStreamReader(System.in));try{System.out.print("Nome: ");nome=entrada.readLine();System.out.print("Fone: ");fone=entrada.readLine();listaTelefones.add(newRegistro(nome,fone));System.out.println("Registro adicionado com sucesso!!!");}catch(IOExceptione){System.out.println("Houve um erro: "+e.getMessage());}}
Editado por JavaTeco. Quando tiver código no post, por favor, utilize a opção Code para ajudar na visualização. Obrigado.
publicclassPrincipal{publicstaticvoidmain(String[]args){Registror=newRegistro("JP","99999999");r.setNome("doowidou");//r.nome = "doowidou"; Não pode mais fazer isso}}
Qual a vantagem disto? Você pode colocar uma validação e implementar condições pra deixar o atributo conssitente.
Té mais.
D
doowidouPJ
Tá, mas no caso a entrada de um nome novo é ali dentro do try:
nome = entrada.readLine();
Devo mudar alguma coisa aí?
J
JoaoPauloPJ
Fala cara…
Observe que a maneira que você vai entrar com os dados é desconhecida pra classe de entidade… que no caso é a classe Registro.
No seu caso, que você vai usar a entrada de dados pela shell, seria interessante, por questão de organização, que você separasse o tratamento das exceções que podem ocorrer na entrada de dados (try/catch) dos métodos setNome e setFone
Porque? esses métodos devem possuir código apenas para deixar os dados em um estado consistente, ou para implementar regras de negócio, eles não precisam se preocupar em tratar as exceções de entrada de dados que serão passados pra ele pq eles nem sabem como esses dados serão passados. ok?
Qualquer dúvida, posta ae…
D
doowidouPJ
Tá, mas de qualquer forma, como fica a entrada de novos nomes e fones?
BufferedReader entrada = new BufferedReader (new InputStreamReader(System.in));
try{System.out.print("Nome: ");nome=entrada.readLine();System.out.print("Fone: ");fone=entrada.readLine();// Essa instrução funcionará sem problemas pois o construtor é publiclistaTelefones.add(newRegistro(nome,fone));// Aqui explico como alterar depois do construtor ter sido chamado:Registror=newRegistro("","");r.setNome(nome);r.setFone(fone);System.out.println("Registro adicionado com sucesso!!!");}catch(IOExceptione){System.out.println("Houve um erro: "+e.getMessage());}