Essa é a Classe:
package br.com.alura;
import java.util.Objects;
public class Aluno {
private String nome;
private int numeroMatricula;
public Aluno(String nome, int numeroMatricula) {
if(this.nome == null) {
throw new NullPointerException("Nome não pode ser null");
}
this.nome = nome;
this.numeroMatricula = numeroMatricula;
}
public String getNome() {
return nome;
}
public int getNumeroMatricula() {
return numeroMatricula;
}
@Override
public String toString() {
return "[Aluno: " + this.nome + ", matricula: " + this.numeroMatricula + "]";
}
@Override
public boolean equals(Object obj) {
Aluno outroAluno = (Aluno) obj;
return this.nome.equals(outroAluno.nome);
}
@Override
public int hashCode() {
return this.nome.hashCode();
}
}
Aqui está o teste. Passo apenas os parametros necessários para instanciar a Classe Aluno (nome e número de matricula):
package br.com.alura;
import java.util.List;
import java.util.Set;
public class TestaCursoComAluno {
public static void main(String[] args) {
Curso javaColecoes = new Curso("Dominando as coleções do Java", "Paulo Silveira");
List<Aula> aulas = javaColecoes.getAulas();
javaColecoes.adiciona(new Aula("Trabalhando com Array List", 25));
javaColecoes.adiciona(new Aula("Lista de Objectos", 19));
javaColecoes.adiciona(new Aula("Relacionamentos com coleções", 24));
System.out.println(javaColecoes);
Aluno a1 = new Aluno("Rodrigo Turini", 34672);
Aluno a2 = new Aluno("Lucas Palito", 34672);
Aluno a3 = new Aluno("Bruno Musashi", 34672);
javaColecoes.matricula(a1);
javaColecoes.matricula(a2);
javaColecoes.matricula(a3);
System.out.println("Todos os alunos matriculados: ");
javaColecoes.getAlunos().forEach(aluno -> {
System.out.println(aluno);
});
}
}