Skip to content

PedroHenriquedp/ProjetoAcervoBiblioteca

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

📚 Acervo Biblioteca

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.

Integrantes

Estrutura do Projeto

Projeto final do bloco 1 precisava conter toda programação orientada a objeto visto na semana, ele precisava conter:

  1. Classes, Atributos e Objetos
  2. Encapsulamento e Herança
  3. Polimorfismo, Sobrecarga e Sobreescrita
  4. Collections
  5. Exceptions

Abaixo há mais informações com exemplos de como aplicamos os conceitos dentro do tema escolhido pelo grupo.

» Classes, Atributos e Objetos

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 e Herança

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 {}

» Polimorfismo, Sobrecarga e Sobreescrita

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 e Exceptions

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);
  	}

Resultado final:

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages