Java help

diogomfm

Power Member
Estou a ter um erro nesta função "listarSalas", no "aux.consultarLugar" dá me um erro cannot find symbol, ou seja não encontra o método consultarLugar, mas o mesmo está descrito na "Classe Sala".
Alguém me pode ajudar?

Main:

Código:
static void listarSalas()
{
    int contador = 0;
    int i = 0;
       while (contador < totalSalas)
       {
      Sala aux = salas[contador];
      for(i = 0; i < 30; i++)
      {
          if(aux.consultarLugar[i] == false)
          {
              System.out.print("Lugar Nº: " + i + " - Ocupado");
          }
          else
          {
              System.out.print("Lugar Nº: " + i + " - Livre");
          }
      }
      contador++;
    }
}

Classe Sala:

Código:
import java.util.Arrays;

class Sala
{public int idSala;
public Boolean[] lugarSala = new Boolean[30];

// Construtor
public Sala(int codSala)
{
     idSala = codSala;
     Boolean[] lugares = new Boolean[30];
     Arrays.fill(lugares, Boolean.FALSE);
     lugarSala = lugares;
}

// Consultar código da sala
public int consultarCodigoSala()
{
     return(idSala);
}

// Consultar lugares da sala
public Boolean[] consultarLugar()
{
     return(lugarSala);
}
}
 
Código:
if(aux.consultarLugar[i] == false)
consultarLugar é um método, logo deverias fazer:
Código:
if(aux.consultarLugar()[i] == false)

Uns pequenos reparos:

É boa pratica referir as variaveis do objecto com a keyword "this"
Código:
// Construtor
public Sala(int codSala)
{
     this.idSala = codSala;
     Boolean[] lugares = new Boolean[30];
     Arrays.fill(lugares, Boolean.FALSE);
     this.lugarSala = lugares;
}

Se quiseres tornar o teu codigo mais legivel, talvez criar um método adicional que permite consultar um dado lugar não seria mal pensado
Código:
public Boolean consultarLugar(int i)
{
     return lugarSala[i];
}
 
Código:
if(aux.consultarLugar[i] == false)
consultarLugar é um método, logo deverias fazer:
Código:
if(aux.consultarLugar()[i] == false)

Uns pequenos reparos:

É boa pratica referir as variaveis do objecto com a keyword "this"
Código:
// Construtor
public Sala(int codSala)
{
     this.idSala = codSala;
     Boolean[] lugares = new Boolean[30];
     Arrays.fill(lugares, Boolean.FALSE);
     this.lugarSala = lugares;
}

Se quiseres tornar o teu codigo mais legivel, talvez criar um método adicional que permite consultar um dado lugar não seria mal pensado
Código:
public Boolean consultarLugar(int i)
{
     return lugarSala[i];
}
Obrigado por ajudares a resolver o problema e pelas dicas.
 
Back
Topo