public class Titulo implements Comparable<Titulo> {
private String nome;
private int anoLancamento;
private boolean incluidoNoPlano;
private double somaAvaliacoes;
private int totalAvaliacoes;
private int duracaoEmMinutos;
// Construtor
public Titulo(String nome, int anoLancamento) {
this.nome = nome;
this.anoLancamento = anoLancamento;
}
// Getters e Setters
public String getNome() {
return nome;
}
public int getAnoLancamento() {
return anoLancamento;
}
public boolean isIncluidoNoPlano() {
return incluidoNoPlano;
}
public void setIncluidoNoPlano(boolean incluidoNoPlano) {
this.incluidoNoPlano = incluidoNoPlano;
}
public int getDuracaoEmMinutos() {
return duracaoEmMinutos;
}
public void setDuracaoEmMinutos(int duracaoEmMinutos) {
this.duracaoEmMinutos = duracaoEmMinutos;
}
public int getTotalAvaliacoes() {
return totalAvaliacoes;
}
// Métodos de avaliação
public void avalia(double nota) {
somaAvaliacoes += nota;
totalAvaliacoes++;
}
public double pegaMedia() {
return somaAvaliacoes / totalAvaliacoes;
}
// Implementação do Comparable
@Override
public int compareTo(Titulo outroTitulo) {
return this.nome.compareToIgnoreCase(outroTitulo.nome);
}
// Sobrescrita do toString
@Override
public String toString() {
return "Titulo{" +
"nome='" + nome + '\'' +
", anoLancamento=" + anoLancamento +
", duracaoEmMinutos=" + duracaoEmMinutos +
'}';
}
}