Problema em java

Boa noite, estou com duvida de como montar um exercicio em java, Sou iniciante alguem poderia me ajudar

  1. Faça uma aplicação java que possa atender aos requisitos de um sistema de hotelaria.
    1.1. Elabore uma classe Publicação, com os seguintes atributos: numero de ordem, tipo, quantidade para locação, valor da diária para locação, dias locados, CPF do cliente e estado de locação (se está locado ou não; utilize campo booleano).
    I. método construtor: a observação importante neste método é que os dias locados não serão preenchidos no início, e sim num segundo momento, quando realmente a publicação for locada, bem como o CPF do cliente.

II. método de exibição: mostra o numero, a quantidade para locação e seu tipo.

III. método para calcular o valor total de locação: o valor total é a quantidade de dias locados x o valor da diária. (método de retorno)

IV. método para calcular o valor de multa: a livraria possui uma política padrão de alugar qualquer publicação de seu acervo por no máximo 15 dias. Caso o número de dias locados ultrapassar esse limite, o valor da multa é 3% para cada dia excedente sobre o valor total da locação. (método de retorno)

V. método de validação de cliente: este método retorna um booleano que informa se um determinado CPF informado por parâmetro corresponde ao CPF cadastrado para o livro. O método deverá validar também
Na Livraria há dois tipos diferentes de Publicações:
1.2. Classe Livro: um livro é uma publicação, porém possui as seguintes informações adicionais: número de páginas, área de atuação (se é exatas, humanas, saúde).
O método de cálculo do valor total de locação também é diferente, pois, além de se calcular normalmente como explicado em II, aplica-se depois um desconto concedido, que corresponde a 5% se é exatas, 7% para humanas, 9% se é saúde, em relação ao valor da diária.
1.3. Classe Trabalho Cientítico: da mesma forma que Livro, um Trabalho Científico também é um tipo de Publicação, com os seguintes atributos a mais: nota final, numero de capítulos.
O método de cálculo da locação também possui uma modificação. Para se calcular esse valor, passa-se um valor do preço da diária por capítulo e o valor total é o produto deste valor pela quantidade de capítulos desse trabalho cientifico, somada a taxa de serviço que é 80% do valor da diária.
2ª PARTE
2. Após a implementação da classe acima, você deverá criar uma classe Main.Java, contendo o método main. Nesta classe, você deverá implementar:
I. Incluir dados relativos a N Publicações da Livraria, sendo este N definido pelo usuário, utilizando ArrayList. Esta coleção só poderá ter Livros ou Trabalhos Científicos e o você deverá dar essa opção ao usuário.

II. Locar uma Publicação. Faz-se a busca pela publicação através de seu número e verifique se há quantidade disponível em estoque. Caso haja, mude a sua situação para “locada” e coloca-se também o CPF do cliente (utilize obrigatoriamente o método de validação da classe Quarto). Mostrar o valor total da locação ao final e não esqueça de dar baixa na sua quantidade

III. Devolver uma publicação. Buscar a Publicação pelo CPF do cliente, altere sua situação para “disponível” (verificando se de fato ela está “locada”) e mostre o valor de sua multa, caso o número de dias locados digitado pelo usuário nesse momento exceder o permitido pela livraria.