Projeto Jogo "Quiz"

Olá, Venho aqui nesse tópico pedir a ajuda de vocês para me ajudarem a desenvolver um jogo quiz(perguntas e respostas).
Não quero recebe-lo pronto pois não me serviria em nada, já que este seria apenas um simples exemplo, para testar meus conhecimentos obtidos sobre Java.io até o momento.
Conforme eu for desenvolvendo sempre surge aquelas dúvidas e acontecem surgindo as famosas “gambiarras”, portanto gostaria dos conselhos de pessoas mais experientes para me indicar a melhor maneira de se resolver, pois aprendendo errado será mais dificil aprender a maneira certa futuramente.

Apenas tenho as idéias em um papel por enquanto, então vou postar as dúvidas iniciais e posteriormente postarei os primeiros códigos.

Primeiros Passos:

A principio, criarei 3 classes:

Pergunta.java: //classe como molde da pergunta

Variáveis:
String Pergunta; //guardará a pergunta
String[] array= {alternativa1,alternativa2,alternativa3,alternativa4}; //guardará as 4 alternativa

Métodos:
SetPergunta
SetAlternativas

CriarPergunta.java //classe com uma interface com 1 text area onde será inserida a pergunta e 4 jtextfield onde serão inseridas as alternativas.2 buttons um para salvar a pergunta e outra para criar uma nova

[color=red]Aqui me surge uma dúvida:[/color] Por exemplo para configurar uma pergunta eu criaria um objeto Pergunta(classe criada anteriormente) e usaria seus setters para configurar os valores.
Ex:
Pergunta pergunta = new Pergunta();
pergunta.setPergunta(); …

Quando eu clico para criar uma nova pergunta.

Como faço para cada vez criar o objeto com um nome diferente para quando for serializar?

Quiz.java //classe que irá pegar uma pergunta aleatoriamente com suas respectivas alternativas.Ainda não comecei a pensar sobre ela.

Está meio complicado para entender, amanhã posto mais algumas coisas.

Obrigado para quem puder ajudar.

Deixei meio vago ali em cima, pois escrevi com pressa estava indo dormir.Agora pela manhã fiz a classe Pergunta e uma parte da classe para criar a pergunta.

Pergunta.java

import java.io.*;

public class Pergunta implements Serializable{
	private String pergunta;
	private String array [] = new String[4];
	private int correta;
	

	public  void setPergunta(String pergunta){
		this.pergunta = pergunta;
	}
	
	public void setAlternativas(String alternativa1, String alternativa2, String alternativa3, String alternativa4){
		array[0] = alternativa1;
		array[1] = alternativa2;
		array[2] = alternativa3;
		array[3] = alternativa4;
	}
	
	public void setCorreta(int correta){
		this.correta = correta;
	}
	
	
}

CriarPergunta.java

//Não está o código inteiro, pois se tornaria muito extenso // a parte a gráfica
//está apenas as ações dos botões onde tenho dúvida

//botão para salvar a pergunta em um arquivo serializado
private void Salvar(ActionEvent e) {
		Pergunta pergunta = new Pergunta();
		
		pergunta.setPergunta(textArea1.getText());
		pergunta.setAlternativas(textField1.getText(), 
				textField2.getText(),
				textField3.getText(), 
				textField4.getText());
		
		//configurando alternativa correta
		if(radioButton1.isSelected() == true)
			pergunta.setCorreta(0);
		else if (radioButton2.isSelected() == true)
			pergunta.setCorreta(1);
		else if (radioButton3.isSelected() == true)
			pergunta.setCorreta(2);
		else if (radioButton4.isSelected() == true)
			pergunta.setCorreta(3);
		
		try{
			ObjectOutputStream os = new ObjectOutputStream(new FileOutputStream("perguntas.ser"));
			os.writeObject(pergunta);
		}catch(IOException ex){
			ex.printStackTrace();
		}
		
	}

private void NovaPergunta(ActionEvent e) {
		//aqui eu não sei como faço, eu criaria outro objeto e adicionaria no arquivo ou posso usar o mesmo objeto pergunta só que setar valores diferentes???

	}

Não tem como colocar vários objetos em um arquivo usando ObjectOutPutStream, vc pode colocar um vetor de objetos, no seu caso um vetor de perguntas.

?

Tipo

[code]Pergunta pergunta2 = new Pergunta();
Pergunta pergunta3 = new Pergunta();

os.writeObject(pergunta2);
os.writeObject(pergunta3);[/code]

?

Isso não é permitido?

Se vc fizer isso, ao buscar o objeto depois com o ObjectInputStream vai vir apenas o último objeto inserido.

Pergunta pergunta2 = new Pergunta();
Pergunta pergunta3 = new Pergunta();

os.writeObject(pergunta2);
os.writeObject(pergunta3);

Tem que fazer assim:

Pergunta perguntas[] = new Pergunta[2];
perguntas[0] = new Pergunta();
perguntas[1] = new Pergunta();

os.writeObject(perguntas);

Ou usar arraylist já que tu não sabe quantas perguntas o usuário vai inserir:

ArrayList<Pergunta> array = new ArrayList<Pergunta>();
array.add(new Pergunta());
array.add(new Pergunta());
array.add(new Pergunta());

Pergunta[] perguntas = (Pergunta[])array.toArray();
os.writeObject(perguntas);