Projeto do Bloco 1 sobre POO com tema livre
ProjetoAcervoBiblioteca é um repositório do ✨ Grupo 3 ✨ com conceitos aprendidos no Bloco 1 da Generation Brasil,
projeto que coloca em prática tudo que vimos em lógica de programação + POO. De tema livre, o grupo escolheu representar uma Biblioteca
,
com cadastro de gêneros, subgêneros e livros com diversos atributos retornando com interação no console.
Projeto final do bloco 1 precisava conter toda programação orientada a objeto visto na semana, ele precisava conter:
- Classes, Atributos e Objetos
- Encapsulamento e Herança
- Polimorfismo, Sobrecarga e Sobreescrita
- Collections
- Exceptions
Abaixo há mais informações com exemplos de como aplicamos os conceitos dentro do tema escolhido pelo grupo.
Classe na principal da biblioteca (que faz ação):
public class MainBiblioteca {}
Atributos na classe FormaBiblioteca (o molde):
protected String nome, categoria, gen, editora, autor, sinopse, tw, classeInd;
protected int anoPubli, qtdPag;
protected double nota,x,y;
Objeto dentro da MainBiblioteca para listagem de categorias:
Lgbtqia l = new Lgbtqia();
Encapsulamento atribuido na Interface como abstrato:
public interface Interface {
public abstract void mostrarGenero();
public abstract void mostrarCategoria();
public abstract void mostrarNome();
public abstract void mostrarEditora();
public abstract void mostrarAutor();
public abstract void mostrarSinopse();
public abstract void mostrarAnoPubli();
public abstract void mostrarClasseInd();
public abstract void mostrarTW();
public abstract void mostrarQtdPag();
}
Herança na classe Romance que extende a FormaBiblioteca:
public class Romance extends FormaBiblioteca {}
Sobrecarga em FormaBiblioteca para puxar parâmetro de nota:
public void mostrarNota(double x) {
System.out.println("Nota: "+x);
}
public void mostrarNota(double x,double y) {
System.out.println("Nota: "+(x+y)/2);
}
Sobreescrita dentro dos gêneros (Romance, Terror, etc) para sobrescrever de Interface:
@Override
public void mostrarCategoria() {
this.categoria = "(1) LGBTQIA+ \n(2) Romance de Época";
System.out.println(categoria);
}
Collections dentro de MainBiblioteca para listar as categorias com Array:
//COLLECTION: ARRAY LIST
ArrayList<String> gensDisponiveis = new ArrayList<String>();
//INSERINDO OS GÊNEROS MANUALMENTE NO ARRAY
gensDisponiveis.add("Terror");
gensDisponiveis.add("terror");
gensDisponiveis.add("Romance");
gensDisponiveis.add("romance");
Exceptions dentro de MainBiblioteca para tratar o erro dos menus:
//EXCEPTIONS - TRATANDO O ERRO
try {
if(posicao == 0 || posicao == 1) {
System.out.println("Escolha uma categoria: ");
terror.mostrarCategoria();
int catT = leia.nextInt();
if(catT==1) {
System.out.println("\nTemos essas opções: \n");
SerialKiller l = new SerialKiller();
l.mostrarNome();
l.mostrarEditora();
l.mostrarAutor();
l.mostrarSinopse();
l.mostrarAnoPubli();
l.mostrarClasseInd();
l.mostrarTW();
l.mostrarQtdPag();
//NOTA EM POLIMORFISMO DE SOBRECARGA
nota.mostrarNota(3.61);
}
else if (catT==2) {
TerrorPsicologico r = new TerrorPsicologico();
System.out.println("\nTemos essas opções: \n");
r.mostrarNome();
r.mostrarEditora();
r.mostrarAutor();
r.mostrarSinopse();
r.mostrarAnoPubli();
r.mostrarClasseInd();
r.mostrarTW();
r.mostrarQtdPag();
//NOTA EM POLIMORFISMO DE SOBRECARGA
nota.mostrarNota(3.61, 3.48);
}
}
leia.close();
}catch(Exception erro) {
System.out.println("Você cometeu um erro: "+erro);
}