Bom, vou postar todo, se achar que falta alguma coisa me diz.
Obrigado.
BTW, existiria a possibilidade de, em alguma remota ocasiao, ser possivel falar por telefone com algum de voces?
Agradeço++
package br.com.alura;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashSet;
import java.util.LinkedList;
import java.util.List;
import java.util.Set;
public class Curso {
private String nome;
private String instrutor;
private List<Aula> aulas = new LinkedList<Aula>();
private Set<Aluno> alunos = new HashSet<>();
public Curso(String nome, String instrutor) {
this.nome = nome;
this.instrutor = instrutor;
}
public String getNome() {
return nome;
}
public String getInstrutor() {
return instrutor;
}
public List<Aula> getAulas() {
return aulas;
}
public void adiciona(Aula aula) {
this.aulas.add(aula);
}
@Override
public String toString() {
// return "Curso: "+ this.getNome() + " - " + this.getInstrutor();
// return "[Curso:"+ this.getNome()+",tempo total:"+ this.getTempoTotal()+ ", aulas: ["+ this.aulas+"] ]";
return "Curso: " + this.getNome() + ", Tempo total: " + this.getTempoTotal() +
", Aulas: " + this.aulas;
}
public int getTempoTotal () {
int tempoTotal = 0;
for (Aula aula : aulas) {
tempoTotal += aula.getTempo();}
return tempoTotal;
}
// Versao equivalente do for-each anterior
// num for next tradicional.
// for (int i = 0; i < aulas.size(); i++){
// tempoTotal += aulas.get(i).getTempo();
// }
// return tempoTotal;
public void matricula(Aluno aluno) {
this.alunos.add(aluno);
}
public Set<Aluno> getAlunos() {
return Collections.unmodifiableSet(alunos);
}
public boolean estaMatriculado(Aluno esteAluno) {
return this.alunos.contains(esteAluno);
}
@Override
public boolean equals(Object obj) {
Aluno outroAluno = (Aluno) obj;
return this.nome.equals(outroAluno.getNome());
}
@Override
public int hashCode(){
return this.nome.hashCode();
}
}
package br.com.alura;
public class Aula implements Comparable {
private String titulo;
private int tempo;
public Aula(String titulo, int tempo) {
this.titulo = titulo;
this.tempo = tempo;
}
public String getTitulo() {
return titulo;
}
public int getTempo() {
return tempo;
}
@Override
public String toString() {
return "Aula " + this.titulo + " : " + this.tempo;
}
@Override
public int compareTo(Aula outraAula) {
return this.titulo.compareTo(outraAula.getTitulo());
}
}
package br.com.alura;
public class Aluno {
private String nome;
private int numeroMatricula;
public Aluno(String nome, int numeroMatricula) {
if (nome == null) {
throw new NullPointerException("Nome não pode ser nulo");
}
if (numeroMatricula == 0) {throw new NullPointerException ("Matricula 0");
}
this.nome = nome;
this.numeroMatricula = numeroMatricula;
}
@Override
public String toString() {
return "Aluno: " + this.nome+ ", mat.: " + this.numeroMatricula;
}
public String getNome() {
return nome;
}
public int getNumeroMatricula() {
return numeroMatricula;
}
}
package br.com.alura;
public class TestaCursoComAluno {
public static void main(String[] args) {
Curso javaColecoes = new Curso("Dominando as coleções do Java",
"Paulo Silveira");
javaColecoes.adiciona(new Aula("Trabalhando com ArrayList", 21));
javaColecoes.adiciona(new Aula("Criando uma Aula", 20));
javaColecoes.adiciona(new Aula("Modelando com coleções", 24));
Aluno a1 = new Aluno("Rodrigo Turini", 34672);
Aluno a2 = new Aluno("Guilherme Silveira", 5617);
Aluno a3 = new Aluno("Mauricio Aniche", 17645);
// Aluno a4 = new Aluno("Fulano", 0);
// Aluno a5 = new Aluno(null, 0);
javaColecoes.matricula(a1);
javaColecoes.matricula(a2);
javaColecoes.matricula(a3);
Aluno turini = new Aluno("Rodrigo Turini", 34672);
System.out.println(a1.equals(turini));
}
}