Java

14 respostas
S
public abstract boolean podeEmprestar() {
    return this.getQtdLivrosEmprestados() < QTD_LIVROS && this.getDataBloqueio() < LocalDate.now();
}

como aplico isso.

14 Respostas

Fefo80

Dentro de uma classe abstrata.

Qual exatamente a sua dúvida?

S

como vc aplicaria, queria um exemplo pra me basear pois acho q estou fazendo da forma errada

Fefo80

Posta aí teu código completo.

S
public class Professor extends Pessoa {
  public static final int QTD_LIVROS = 5;
  public static final int DIAS_UTEIS = 20;
  
  public Professor(String nome, String matricula, String email, LocalDate dataEmprestimo, LocalDate dataDevolucao, LocalDate dataBloqueio, int qtdDiasBloqueados, int qtdLivrosEmprestados, List<Livro> livros) {
    super(nome, matricula, email, dataEmprestimo, dataDevolucao, dataBloqueio, qtdDiasBloqueados, qtdLivrosEmprestados, livros);
  }
  
  public abstract boolean podeEmprestar(){
    return this.getQtdLivrosEmprestados() < QTD_LIVROS && this.getDataBloqueio() < LocalDate.now();
  }
staroski

Métodos abstratos só podem ser declarados dentro de classes abstratas ou interfaces.
Métodos abstratos não possuem corpo.
Se esse método está declarado como abstract na classe Pessoa, então na classe Professor você remove a palavra abstract da declaração dele.

S

E como coloco isso na aplicação?

staroski

Experimentou apagar palavra abstract?

S

estou na duvida em como colocar na aplicação com o for .

S

estou na duvida em como colocar na aplicação com o for .

S

Teria que fazer isto né?
urgente pfvr

staroski

Não sei, o que sua aplicação precisa fazer?
Se você não falar, não tem como nós adivinharmos.

S

Os alunos poderão realizar empréstimos de até 3 livros, sendo o prazo de devolução em 10 dias úteis. Não é possível realizar novo empréstimo se já houver outro em andamento. Caso haja atraso na devolução, o aluno ficará suspenso por igual período para cada dia de atraso.

Professores podem pegar também 3 livros, porém com prazo de 20 dias. Além disso, professores podem realizar mais de um empréstimo simultâneo não ultrapassando o limite de 5 livros e respeitando os prazos de devolução.

hugokotsubo

Classes como LocalDate não podem ser comparadas assim com o operador <. Você tem que usar métodos como o isBefore:

this.getDataBloqueio().isBefore(LocalDate.now())
Fefo80

Tentar apagar suas postagens não resolve.

Poste aqui, por gentileza, o enunciado completo da questão. Obrigado.

Criado 3 de outubro de 2021
Ultima resposta 4 de out. de 2021
Respostas 14
Participantes 4