Como fazer um código livre usando todos esses assuntos?

Classes e Objetos
Sobrecarga de métodos
Encapsulamento
Associação
Herança
Enumerações
Classes Abstratas
Polimorfismo

Precisando de uma ajuda para começar

Sua pergunta é muito vaga. Qualquer programa que seja mais que um exercício de 1 arquivo pode conter tudo isso.

Se quer exemplos do que fazer, faça um cadastro qualquer (ex: alunos, professores e cursos, ou cinema com filmes, sessões e audiência). Não precisa nem de banco de dados.

Abraço.

eu não estou conseguindo pensar em um tema e conseguir aplicar todos esses assuntos no código. por isso pedir a ajuda

Vai no que o @TerraSkilll falou. Não tem erro.

Uma classe com os dados de um contato, que você adicione a pessoa só com nome, nome+telefone, nome+telefone+email que herde uma tabela de tipos de contatos (“casa”, “celular”, “comercial” etc.) e uma classe com a interação com o usuário para buscar os dados e apresentá-los.

Comecei a fazer o código assim, onde posso aplicar os outros assuntos nesse código ?

public class Funcionario {
private String nome;
private Long salario;
public Funcionario() {
}
public Funcionario(String nome, Long salario) {
this.nome = nome;
this.salario = salario;
}
public void trabalhar() {
System.out.println(“Estou trabalhando!”);
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public Long getSalario() {
return salario;
}
public void setSalario(Long salario) {
this.salario = salario;
}
}

Por gentileza, dá uma olhada nessa lista de vídeos no YouTube:

Isso pode lhe ajudar.

Eu acho que está tendo uma inversão aqui. Essas coisas que você citou são ferramentas: recursos que possuem características específicas, prós e contras, são melhores em algumas situações e nem sempre necessárias em outras. Elas são soluções que você pode ou não aplicar para resolver algum problema.

Então você primeiro analisa o problema e depois vê qual solução aplicar, e não o contrário.

É como se eu dissesse: tenho um martelo, uma chave de fenda e um serrote, qual projeto posso fazer para usar essas ferramentas? Não faz muito sentido, pois primeiro você vê o que precisa fazer, e aí escolhe as ferramentas adequadas. Pode ser que precise de todas, mas pode ser que apenas algumas sejam necessárias (e tentar forçar o uso de uma só para dizer que usou - como por exemplo usar o martelo para prender um parafuso, só para dizer que usou o martelo - nem sempre produzirá o melhor resultado).

Mas como você não tem um problema específico, aí fica difícil. Você até pode inventar um problema artificial qualquer e tentar encaixar tudo isso, mas nem sempre ficará adequado (nem todo projeto precisa de todas as ferramentas).

1 curtida

então eu tenho que fazer um código que utiliza todos os assuntos acima e eu não estou conseguindo fazer um código que consiga relacionados todos esses assuntos, por isso, pedi ajuda para montar esse código, pois não estou conseguindo e preciso apresentar ele na segunda de manhã.

Faculdade ou curso independente? Você já estudou esses assuntos?

Faculdade. Só que estou estudando essa matéria em EAD, ai está surgindo bastante dúvidas e preciso do código pra apresentar como nota final. Por isso estou pedindo ajuda

Infelizmente é assim que muitos são formados e tantos projetos com excesso de engenharia são criados, principalmente relacionado ao uso de OOP.

fiz um código mas ele está dando erro, poderiam ajudar ? Acho que consegui fazer um código usando os assuntos que precisava usar.

Código

  • To change this license header, choose License Headers in Project Properties.
  • To change this template file, choose Tools | Templates
  • and open the template in the editor.
    */
    package livrariaonline;

import java.util.Scanner;

/**
*

  • @author richa
    */
    public class AppLivrariaOnline {
    public static void main(String[] args) {
    //crianção de scanner para leitura de string e int
    Scanner entrada = new Scanner(System.in);
    Scanner entradaString = new Scanner(System.in);

     int menu;
     double vInicial, vFinal;
     //referencia para a classe LivrariaOnline
     LivrariaOnline objLivro;
     
     String titulo, autor, genero;
     float preco;
     int isbn;
     
     do{
         exibirMenu();
         menu = entrada.nextInt();
         
         switch(menu){
             case 1:
                 System.out.println("====> CADASTRAR LIVRO ");
                 System.out.println("Digite o título: ");
                 titulo = entradaString.nextLine();
                 System.out.println("Digite o autor: ");
                 autor = entradaString.nextLine();
                 System.out.println("Digite o gênero: ");
                 genero = entradaString.nextLine();
                 System.out.println("Digite o ISBN: ");
                 isbn = entrada.nextInt();
                 System.out.println("Digite o preço");
                 preco = entrada.nextFloat();
                 
                 //criar objeto da classe
                 objLivro = new LivrariaOnline(titulo, autor, isbn, genero, preco);
                 
                 //guardar objeto do arraylist
                 Acervo.adicionar(objLivro);
                 
                 break;
                 
             case 2:
                 System.out.println("====> LISTAGEM DE LIVROS ");
                 if( Acervo.listar( ) > " " ) ){
                     System.out.println( Acervo.listar() );
                 }else {
                     System.out.println("O Acervo se encontra sem livros");
                 }
                 
                 break;
                 
             case 3:
                 System.out.println("====> EXCLUSÃO DE LIVRO ");
                 System.out.println("====> Digite o título do livro: ");
                 titulo = entradaString.nextLine();
                 //Se acervo não vazio, pode remover
                 if( !(Acervo.getListaLivros().isEmpty())){
                     if( Acervo.remover(titulo) ){
                         System.out.println("Livro removido com sucesso!");
                     }else{
                         System.out.println("O título não foi encontrado!");
                     }
                     
                 }else {
                     System.out.println("Não existem livros no acervo!");
                 }
                 break;
                 
             case 4:
                 System.out.println("====> PESQUISAR PELO GÊNERO");
                 System.out.println("Digite o gênero: ");
                 genero = entradaString.nextLine();
                 System.out.println("Existem " + Acervo.pesquisar(genero)
                         + " livro(s) de gênero " + genero);
                 break;
                 
             case 5:
                 System.out.println("====> PESQUISA POR FAIXA DE PREÇO");
                 System.out.println("Digite a faixa inicial e a final: ");
                 vInicial = entrada.nextDouble();
                 vFinal = entrada.nextDouble();
                 
                 System.out.println("Existem " + Acervo.pesquisar(vInicial, vFinal)
                         + " livro(s) com preço entre "
                         + String.format("R$ %.2f e R$ %.2f \n", vInicial, vFinal));
                 break;  
                 
             case 6:
                 System.out.println("====> VALOR(R$) TOTAL DO ACERVO");
                 System.out.println("O Valor total é: " 
                         + String.format("R$ %.2f \n", Acervo.calcularTotalAcervo() ));
                 break;    
                 
             case 7:
                 System.out.println("Saindo...");
                 break;    
                 
             default:
                 System.out.println("Opção de menu inválida!");
                 
                 
         }
         
                 
     }while(menu != 7);
    

    }//fim da main

    static void exibirMenu(){
    System.out.println("=========== Livraria Online ===========");
    System.out.println(“1 - CADASTRAR LIVRO”);
    System.out.println(“2 - LISTAR OS LIVROS”);
    System.out.println(“3 - EXCLUIR LIVRO CADASTRADO”);
    System.out.println(“4 - PESQUISAR LIVRO POR GÊNERO”);
    System.out.println(“5 - PESQUISAR LIVRO POR FAIXA DE PREÇO”);
    System.out.println(“6 - CALCULAR PREÇO TOTAL DO ACERVO”);
    System.out.println(“7 - SAIR”);
    System.out.println("====> Escolha uma opção: ");

    }

}