Valor de arraylist em um if e else

Estou tentando limitar os estudantes da classe Disciplina em 50 com uma ArrayList e uma condição, mas talvez elas estejam em lugares errados ou é algo muito simples que não consigo enxergar.

Como faço pra dizer: se a quantidade de estudantes for > 50 então mostrar : “Sala lotada”?

Porque basicamente um objeto disciplina pode ter no máximo 50 estudantes.

import java.util.ArrayList;

class Main {
  public static void main(String[] args) {

   
   
   Estudante e1 = new Estudante();
    e1.nome = "Juan da Silva";
    e1.nmatricula = "420.666";
    e1.ano= "2017";
    e1.idade= "15";

  Professor p1 = new Professor();
   p1.nome = "Kira Yagami";
   p1.ano = "2017";
   p1.especialidade = "Tecnologia da Informação";
   
    Disciplina d1 = new Disciplina();
    d1.professor = p1;
    
    d1.estudantes.add(e1);
  
  if(this.estudantes.size()>50){
		  	System.out.println("Sala lotada. Mais de 50 alunos!");
        }
      else{
		  System.out.println("Sala com menos de 50 alunos!");
		}
		
}
}


class Estudante{
  String nome;
  String nmatricula;
  String ano;
  String idade;
}
class Professor{
  String nome;
  String ano;
  String especialidade;
}
class Disciplina{
  Professor professor;
  ArrayList<Estudante> estudantes;
  
  public Disciplina(){
    this.estudantes = new ArrayList<Estudante>();
    }
  
  public void quantidadeDeEstudante(){
    for(int i =0;i<this.estudantes.size();i++){
    }
  }
}

Eu sei que o erro esta na parte:

if(this.estudantes.size()>50){

pois esta dizendo que a função q eu fiz n existe. Como arrumo isso?

Class Main {
public static void main(String[] args) {

boolean salaLotada = false;

while (!salaLotada) {
// ler dados dos estudantes
salaLotada = !d1.adicionarEstudante(e1);
}
}

}

Class Disciplina {
private static int LIMITE_ALUNOS = 50;

public boolean adicionarEstudante (Estudante novoEstudante){
if (this.estudantes.size() < LIMITE_ALUNOS) {
this.estudantes.add(novoEstudante);
return true;
} //if
return false;
}//métido
}//classe

1 curtida

Antes de tudo obrigado pela resposta.
Bem, quando coloquei na classe disciplina isso que você sugeriu:

public boolean adicionarEstudante (Estudante novoEstudante){
if (this.estudantes.size() < LIMITE_ALUNOS) {
this.estudantes.add(novoEstudante);
return true;
}
return false;	
}

Ocorreu o mesmo erro de antes de estar dizendo que “this.estudantes.size” n existe:

error: cannot find symbol
if (this.estudantes.size() < LIMITE_ALUNOS) {
^
symbol: variable estudantes
error: cannot find symbol
this.estudantes.add(novoEstudante);
^
symbol: variable estudantes

Cara, vou postar o código; não é muito bom, todavia, você recebê-lo por completo, uma vez que você já fez quase tudo dele. Lembrando: o bom é pegar as dicas e ir aprimorando seu raciocínio lógico.

Pense nisso!

Seque o código:

[code] import java.util.ArrayList;

public class Main {

public static void main(String[] args) {

Estudante e1 = new Estudante();
e1.nome = “Juan da Silva”;
e1.nmatricula = “420.666”;
e1.ano= “2017”;
e1.idade= “15”;

Professor p1 = new Professor();
p1.nome = “Kira Yagami”;
p1.ano = “2017”;
p1.especialidade = “Tecnologia da Informação”;

Disciplina d1 = new Disciplina();
d1.professor = p1;

boolean salaLotada = false;

while (!salaLotada) {
	// ler dados dos estudantes
	salaLotada = !d1.adicionarEstudante(e1);
  	e1 = new Estudante();
	e1.nome = "Juan da Silva II";
	e1.nmatricula = "420.666";
	e1.ano= "2017";
	e1.idade= "15";
}

for (int i = 0; i < d1.estudantes.size(); i++) {
  System.out.println(d1.estudantes.get(i).nome);
}

}
}

class Estudante{
String nome;
String nmatricula;
String ano;
String idade;
}
class Professor{
String nome;
String ano;
String especialidade;
}
class Disciplina{
Professor professor;
ArrayList estudantes;
private static int LIMITE_ALUNOS = 2;

public Disciplina(){
this.estudantes = new ArrayList();
}

public boolean adicionarEstudante (Estudante novoEstudante){
if (this.estudantes.size() < LIMITE_ALUNOS) {
this.estudantes.add(novoEstudante);
return true;
}
return false;
}

public void quantidadeDeEstudante(){
for(int i =0;i<this.estudantes.size();i++){
}
}
} [/code]

1 curtida