desafio-poo-dio
desafio-poo-dio copied to clipboard
Melhorias nas Classes `Bootcamp`, `Curso`, `Mentoria` e `Dev`
Melhorias e Atualizações nas Classes Bootcamp
, Curso
, Mentoria
e Dev
Olá!
Realizei algumas melhorias e atualizações nas classes Bootcamp
, Curso
, Mentoria
e Dev
. Abaixo estão as principais modificações realizadas e os testes realizados para garantir que as mudanças funcionam corretamente.
Modificações Realizadas
1. Classe Bootcamp
-
Construtor Adicionado: Adicionamos um construtor para inicializar
nome
edescricao
diretamente. Isso torna a criação de umBootcamp
mais intuitiva e garante que todos os atributos obrigatórios sejam fornecidos na criação. -
Método
toString()
Adicionado: Adicionada uma representação em string doBootcamp
para facilitar a visualização dos dados em logs e prints. -
Remoção dos Métodos
setNome
esetDescricao
: Tornamosnome
edescricao
imutáveis para garantir que esses atributos não sejam alterados após a criação doBootcamp
. -
Atualização do
equals()
ehashCode()
: Atualizados para considerar apenas os atributos imutáveis (nome
edescricao
) para garantir a consistência na comparação e na geração de hash.
Código Atualizado:
public class Bootcamp {
private final String nome;
private final String descricao;
private final LocalDate dataInicial;
private final LocalDate dataFinal;
private final Set<Dev> devsInscritos = new HashSet<>();
private final Set<Conteudo> conteudos = new LinkedHashSet<>();
public Bootcamp(String nome, String descricao) {
this.nome = nome;
this.descricao = descricao;
this.dataInicial = LocalDate.now();
this.dataFinal = dataInicial.plusDays(45);
}
public String getNome() {
return nome;
}
public String getDescricao() {
return descricao;
}
public LocalDate getDataInicial() {
return dataInicial;
}
public LocalDate getDataFinal() {
return dataFinal;
}
public Set<Dev> getDevsInscritos() {
return devsInscritos;
}
public Set<Conteudo> getConteudos() {
return conteudos;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Bootcamp bootcamp = (Bootcamp) o;
return nome.equals(bootcamp.nome) && descricao.equals(bootcamp.descricao);
}
@Override
public int hashCode() {
return Objects.hash(nome, descricao);
}
@Override
public String toString() {
return "Bootcamp{" +
"nome='" + nome + '\'' +
", descricao='" + descricao + '\'' +
", dataInicial=" + dataInicial +
", dataFinal=" + dataFinal +
", devsInscritos=" + devsInscritos +
", conteudos=" + conteudos +
'}';
}
}