Olá pessoal, esse é meu primeiro post aqui. Sou novo no mundo da programação e quero ingressar nessa área mas ainda possua muitas dúvidas bobas. A minha dúvida é quanto a um código de exercício resolvido pelo professor, em resumo, esse “sistema” deve cadastrar os alunos em disciplinas e etc
public class Turma {
private final int MAX_ALUNOS = 30;
private final int MAX_CREDITOS = 20;
private String codigo;
private Disciplina disciplina;
private ArrayList<Aluno> alunos;
public Turma(String codigo, Disciplina disciplina) {
this.codigo = codigo;
this.disciplina = disciplina;
alunos = new ArrayList();
}
public String getCodigo() {
return codigo;
}
public Disciplina getDisciplina() {
return disciplina;
}
public boolean matricular(Aluno a) {
// 1-Verificar se tem vaga na turma
if (! temVaga())
return false;
// 2-Verificar se aluno ja esta inscrito nessa disciplina
if (estaInscrito(a))
return false;
// 3-Verificar se o aluno ja esta inscrito nessa disciplina
if (a.estaInscrito(disciplina))
return false;
// 4-Verificar se aluno estourou o limite de 20 creditos
if (a.qtdCreditos() + disciplina.getNrCreditos() > MAX_CREDITOS)
return false;
// Inclui o aluno na lista de alunos da turma
alunos.add(a);
// Informa ao aluno que ele esta inscrito na turma
a.matriculado(this);
return true;
}
A minha dúvida está relacionada ao código do último comentário: O que faz esse a.matriculado(this)?
O método da classe aluno está assim:
public void matriculado(Turma t) {
turmas.add(t);
}
eu sei que o this faz referência a variável da própria classe para se diferenciar da variável de mesmo nome que é passada como parâmetro de um método, mas e nesse caso, o this seria o que? E porque eu só posso usar esse comando dentro desse método matricular? Tentei usar fora desse método, no corpo do programa, mas ele da erro.
Desde já agradeço por qualquer ajuda.