Duvida sobre o this?

Boa tarde! meu professor me passou um conteudo contendo 2 classes, uma classe chamada aluno e a outra curso, porém me deparei com um “this” entre parenteses e não consigo entender o funcionamento do algoritmo, mesmo revisando o video pela 5 vez e procurando em outros.
se alguem puder me explicar o funcionamento do codigo e do pq do “this” entre parenteses, irei ficar eternamente grato haha
segue o codigo

CLASSE CURSO

package cursos;

import java.util.ArrayList;
import java.util.List;

public class Curso {
String curso;
final String nome;

Curso(String nome){
this.nome = nome;
}
List alunos = new ArrayList();
void adicionarAluno(Aluno aluno){
this.alunos.add(aluno);
aluno.cursos.add(this);// <—ESSE THIS, NÃO ENTENDI A QUEM ELE ESTA SE REFERINDO
}
}

CLASSE ALUNO

package cursos;

import java.util.ArrayList;
import java.util.List;

public class Aluno {
final String nome;

Aluno(String nome){
this.nome = nome;
}

List cursos = new ArrayList();

void adicionarCurso(Curso curso){
this.cursos.add(curso);
curso.alunos.add(this);// <----NOVAMENTE ESSE THIS QUE EU NÃO FAÇO IDEIA DO PQ
}
}

e outra duvida, porem não menos importante; como que eu faço para dar melhor resposta no topico?

O objeto aluno possui um atributo cursos que é do tipo List.
Pois bem, a Interface List define um método add que recebe como parâmetro o objeto a ser inserido na lista.
O this é a forma de você referenciar a instância da própria classe cujo código está sendo executado naquele momento.
Então naquela linha você está adicionando o próprio objeto do tipo Curso na lista de cursos do aluno.
Então nessa linha você está adicionando

1 curtida