Gravar dados do OBJETO P num arquivo.txt

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());
		
	
	}
	
	
			
}

}[/code]

ObjectOutputStream.

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

  1. preciso armazenar 20 passageiros em 3 vetores nome, rg e poltrona.
  2. 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.
  3. 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()); 
}

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

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.

Maniezo, vc tem algum exemplo simples de serializar o objeto

Fiz um simples aqui gerando um arquivo txt com seu objeto veja:

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutput;
import java.io.ObjectOutputStream;


public class Teste implements java.io.Serializable{   
	
	private String var1;
	private String var2;
	
	public void setVar1(String var1) {
		this.var1 = var1;
	}
	public String getVar1() {
		return var1;
	}
	public String setVar2() {
		return var2;
	}
	public String getVar2() {
		return var2;
	}
	
	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		
		Teste object = new Teste();
		
		object.setVar1("Variavel1");
		object.setVar1("Variavel2");
		
		
	    try {   
	        // Serialize to a file   
	        ObjectOutput out = new ObjectOutputStream(new FileOutputStream("filename.ser"));   
	        out.writeObject(object);   
	        out.close();   
	       
	      
	    } catch (IOException e) {   
	    }  

	    Deserializar();
	}
	
	
	public static void Deserializar(){
		
		Teste obj = null;
		
		try {   
	        // Deserialize from a file   
	        File file = new File("filename.ser");   
	        ObjectInputStream in = new ObjectInputStream(new FileInputStream(file));   
	        // Deserialize the object   
	        obj = (Teste) in.readObject();   
	        in.close();   
	        
	    } catch (ClassNotFoundException e) {   
	    
	    } catch (IOException e) {   
	    
	    }  
	    
	    System.out.println("Seu objeto de volta: "+obj.getVar1());
	    
	    
	}
	


}

Estou grato a todos vocês pelas dicas