Pessoal, alguém pode me orientar e sanar dúvida, preciso gravar os dados do OBJETO P num arquivo.txt ou até mesmo criar um método para isso, e ainda idéias como melhorar o código.
Tenho apostila do caelum e material do GUJ, porém preciso aprender mais sobre orientação a objetos
publicclasspassageiro{//AtributosprivateStringnome,rg;privateintpoltrona;//Metodos de acesso getXxxpublicStringgetNome(){returnnome;}publicStringgetRg(){returnrg;}publicintgetPoltrona(){returnpoltrona;}//Metodos de acesso setXxxpublicvoidsetNome(Stringn){nome=n;}publicvoidsetRg(Stringr){rg=r;}publicvoidsetPoltrona(intp){poltrona=p;}}*************************************************************importjavax.swing.*;publicclassusaPassageiro{publicstaticvoidmain(Stringargs[]){inti;passageirop=newpassageiro();Stringaux_nome[]=newString[20];Stringaux_rg[]=newString[20];intaux_poltrona[]=newint[20];for(i=0;i<20;i++){aux_nome[i]=JOptionPane.showInputDialog("Digite o nome");aux_rg[i]=JOptionPane.showInputDialog("Digite o rg");aux_poltrona[i]=Integer.parseInt(JOptionPane.showInputDialog("Digite a poltrona"));p.setNome(aux_nome[i]);p.setRg(aux_rg[i]);p.setPoltrona(aux_poltrona[i]);}for(i=0;i<3;i++){System.out.println("Nome: "+p.getNome());System.out.println("Rg: "+p.getRg());System.out.println("Nome: "+p.getPoltrona());}}}
Alguns pontos… o seu objeto p está sempre sendo atualizado dentro do primeiro for… então, se vc quer 20 passageiros, crie um vetor/array de passageiros…
Outra, dentro do seu segundo for, porque ir até 3?!? e por que imprimir sempre a mesma coisa, já que p é unico?!?
E aonde está a sua duvida?!?
S
Sergio_Prado
Na verdade estou iniciando minha caminhada em orientação o objetos e estou gostando cada vez mais de JAVA
Tenho os seguintes pontos
preciso armazenar 20 passageiros em 3 vetores nome, rg e poltrona.
quando usuário digitar a poltrona, tenho que criar um condição (IF da vida) para verificar se a poltrona está ocupada ou nao, exemplo: poltrona 5, posso vender a passagem ou já está ocupada.
feito isso preciso armazenar os dados num arquivo.txt
felipealbuquerque
Além das indicações do rodrigoallemand , tenho mais algumas a fazer.
1º: Por convenção, os nomes das classes começam com letras maiúsculas.
2º: Também por convenção, os nomes de variáveis começam com letras minúsculas, e, se for um nome composto por mais de uma palavra, separe as palavras com letras maiúsculas, não com ‘_’.
3º: Se você deseja apenas exibir os passageiros digitados, não precisa armazená-los em arrays ou algo do tipo. Exemplo:
Stringnome=null;Stringrg=null;Stringpoltrona=null;Passageiropassageiro=null;for(inti=0;i<20;i++){nome=JOptionPane.showInputDialog("Digite o nome");rg=JOptionPane.showInputDialog("Digite o rg");poltrona=Integer.parseInt(JOptionPane.showInputDialog("Digite a poltrona"));passageiro=newPassageiro();passageiro.setNome(nome);passageiro.setRg(rg);passageiro.setPoltrona(poltrona);System.out.println("Nome: "+passageiro.getNome());System.out.println("Rg: "+passageiro.getRg());System.out.println("Nome: "+passageiro.getPoltrona());}
felipealbuquerque
Somente agora eu li o seu novo post.
Guarde os passageiros em um array então.
Para verificar as poltronas, uma solução pouco eficiente, mas rápida é iterar no array de passageiros e verificar se algum já tem a poltrona que o usuário digitou. Se tiver, adiciona o passageiro e incrementa i, senão, pega outro passageiro e não incrementa i. Para isso, você pode utilizar um while no lugar do atual for
Maniezo
Se não em engano para gravar em um txt os dados vc pode serializar seu objeto e gravar no txt, depois quando voltar tera o objeto ja com dados pronto.
S
Sergio_Prado
Maniezo, vc tem algum exemplo simples de serializar o objeto
Maniezo
Fiz um simples aqui gerando um arquivo txt com seu objeto veja:
importjava.io.File;importjava.io.FileInputStream;importjava.io.FileOutputStream;importjava.io.IOException;importjava.io.ObjectInputStream;importjava.io.ObjectOutput;importjava.io.ObjectOutputStream;publicclassTesteimplementsjava.io.Serializable{privateStringvar1;privateStringvar2;publicvoidsetVar1(Stringvar1){this.var1=var1;}publicStringgetVar1(){returnvar1;}publicStringsetVar2(){returnvar2;}publicStringgetVar2(){returnvar2;}/** * @param args */publicstaticvoidmain(String[]args){// TODO Auto-generated method stubTesteobject=newTeste();object.setVar1("Variavel1");object.setVar1("Variavel2");try{// Serialize to a file ObjectOutputout=newObjectOutputStream(newFileOutputStream("filename.ser"));out.writeObject(object);out.close();}catch(IOExceptione){}Deserializar();}publicstaticvoidDeserializar(){Testeobj=null;try{// Deserialize from a file Filefile=newFile("filename.ser");ObjectInputStreamin=newObjectInputStream(newFileInputStream(file));// Deserialize the object obj=(Teste)in.readObject();in.close();}catch(ClassNotFoundExceptione){}catch(IOExceptione){}System.out.println("Seu objeto de volta: "+obj.getVar1());}}