Inicialização em java

Boa noite povo. galera, eu to com umas duvidas aqui… Alguem pode dar um força? Eu ja tentei tudo que eu podia, mas a coisa nao fluiu.
seguinte, tenho que fazer um sistema academico. Nele tenho que permitir o usuario cadastrar, excluir, alterar dados de objetos de classes que criei.

–Inicio da treta que eu preciso fazer. –
Para todas as classes desenvolvam métodos construtores (as listas devem ser somente instanciadas), métodos get e set (somente os necessários) e métodos para adicionar, remover, listar e pesquisar. Todos os atributos devem ter acesso privado.

Classe Graduacao.
Regra de negócio: Somente serão permitidos até 5 ciclos para um curso de graduação. Caso esse limite seja ultrapassado, esta classe deve disparar uma exceção da Classe Excecao. Um número de erro para essa situação deve ser especificado no disparo da exceção, assim como sua mensagem (número e mensagem únicos).

Classe ciclo => Observação: um ciclo só pode ter dois módulos

Classe Disciplina:• Método para retornar a quantidade de turmas da disciplina.

Classe TurmaExtensao e TurmaGraduacao => Observação: um aluno só pode ser adicionado em uma turma, se já estiver incluído em algum curso. Caso contrário, esta classe deve disparar uma exceção da Classe Excecao. Um número de erro para essa situação deve ser especificado no disparo da exceção, assim como sua mensagem (número e mensagem únicos).

Extensao => Regras de negócio: dataFim deve ser maior que data dataInicio. Estas datas também devem ser datas válidas. Caso essas duas situações não sejam respeitadas na aplicação, devem ser disparadas exceções da Classe Exceção abaixo. Um número de erro para cada uma dessas situações deve ser especificado, assim como suas mensagens.

Classe professor => Regra de negócio: um professor não pode lecionar em diferentes turmas no mesmo horário de aula em um dia da semana. Se isso ocorrer, deve ser disparada a exceção da classe Exceção, impossibilitando a alocação daquele horário de aula para o professor. Um número de erro e a respectiva mensagem devem ser especificados.

Excessao Método construtor com os atributos da classe. Este método deve invocar o método construtor da classe Exception.

Método para determinar quais as disciplinas ainda faltam para um aluno concluir seu curso. Parâmetro: matrícula do aluno.

Métodos para emprestar e devolver um livro. Determinem os parâmetros destes métodos. (Lembrem-se que os empréstimos devem ser atualizados no aluno e livro).

• Método para pesquisar se existe algum aluno com um livro emprestado a mais de 7 dias desde a data de empréstimo. O método não precisa de parâmetros, sendo necessário apenas obter a data atual do sistema operacional. Imprimir para cada matrícula de aluno, um número referente ao valor total da multa (Multa: R$ 1,50 por dia de atraso).

• Regras de negócio: toda vez que um livro for emprestado, a sua quantidade de exemplares deve ser decrementada e, quando ocorrer uma devolução, esse atributo deve ser incrementado. Um livro só pode ser emprestado se a quantidade de exemplares for maior que zero.

• A leitura de dados do usuário e a impressão na tela devem ser feitos somente na classe SistemaAcademico, pois é a única responsável pelas interações com o usuário.

Segue o codigo que ja desenvolvi, estou começando a aprender java, mas os pontos a cima nao consegui fazer, podem me ajudar?

https://pastebin.com/pRM7Z3m5