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
[code]
public class passageiro{
//Atributos
private String nome, rg;
private int poltrona;
//Metodos de acesso getXxx
public String getNome() {
return nome;
}
public String getRg() {
return rg;
}
public int getPoltrona() {
return poltrona;
}
//Metodos de acesso setXxx
public void setNome(String n) {
nome = n;
}
public void setRg(String r) {
rg = r;
}
public void setPoltrona(int p) {
poltrona = p;
}
}
import javax.swing.*;
public class usaPassageiro {
public static void main(String args[]){
int i;
passageiro p = new passageiro();
String aux_nome[] = new String[20];
String aux_rg[] = new String[20];
int aux_poltrona[] = new int[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?!?
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
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 ‘_’.
Exemplos:
class passageiro { } // fora da convenção
class Passageiro { } // Ok
String[] aux_nome; // fora da convenção
String[] auxNome; // Ok
3º: Se você deseja apenas exibir os passageiros digitados, não precisa armazená-los em arrays ou algo do tipo. Exemplo:
String nome = null;
String rg = null;
String poltrona = null;
Passageiro passageiro = null;
for (int i = 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 = new Passageiro();
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());
}
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