Array boolean n altera

tenho suas classes menu e outra teatro, teatro:

public boolean disponivel(int numDoAssento, int codigo){
Menu e = new Menu();
if (e.arrayAssento[codigo][numDoAssento] == true) {
return true;
}
else return false;
}
public void venda(int numDoAssento, int codigo) {
Menu e = new Menu();
e.arrayAssento[codigo][numDoAssento] = true;
}

no menu:

public boolean arrayAssento[][] = new boolean[100][100];

else if (arrayIndentificador[codigoDoEvento] == 1 && arrayStatus[codigoDoEvento] == 1){
a = JOptionPane.showInputDialog(“Numero do Assento?”);
numDoAssento = Integer.parseInt(a);
if (e.disponivel(numDoAssento,codigoDoEvento) == false){
JOptionPane.showMessageDialog(null,“Assento vendido com sucesso!”);
e.venda(numDoAssento,codigoDoEvento);
}
if (e.disponivel(numDoAssento,codigoDoEvento) == true){
JOptionPane.showMessageDialog(null,“Assento ja vendido!!”);
}
}

fiz uns teste colocando fixo um valor true para uma array e ele responde assento vendido, mas para os outros sempre o valor das array depois de ser alterado para true volta a ser false, pq isso pode estar acontecendo?

Não sei se entendi bem, mas esse seu código verifica se o assento está disponivel, se tiver, faz a venda para o passageiro, e depois verifica de novo se esta disponivel (e ai não vai mais estar pois acabou de ser vendido), e acaba dizendo assento ja vendido.

 if (e.disponivel(numDoAssento,codigoDoEvento) == false){
JOptionPane.showMessageDialog(null,"Assento vendido com sucesso!");
e.venda(numDoAssento,codigoDoEvento);
}
if (e.disponivel(numDoAssento,codigoDoEvento) == true){
JOptionPane.showMessageDialog(null,"Assento ja vendido!!");
} 

Tenta substituir isso ai por:

 if (e.disponivel(numDoAssento,codigoDoEvento) == false){
JOptionPane.showMessageDialog(null,"Assento vendido com sucesso!");
e.venda(numDoAssento,codigoDoEvento);
}
else {
JOptionPane.showMessageDialog(null,"Assento ja vendido!!");
} 

o problema e q a array esta sempre ficando false, ela n altera, oq pode ta havendo?