Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

[Projeto] Hora Prática - Exercícios Resolvidos - Classe Principal

Boa noite fórum. Estou em uma fase de empolgação com o aprendizado da linguagem. Cada desafio tento sempre realizar com o máximo de dedicação possível. Sei que não pode ser uma prática comum, mas resolvi os exercícios em uma classe principal somente, porém indicando em cada bloco do código o que este corresponde colocando um print para identificar qual exercício está sendo executado. Alguns exercício foram resolvidos instanciando os objetos e outros foram resolvidos invocando os métodos. Fiz desta forma para não perder as práticas que estudamos nos módulos anteriores e fixar o conteúdo publicado. Pesquisei sobre a importação implícita de pacotes para fazer todo o exercício na classe principal e função sleep para dar um intervalo entre os códigos.

Classe principal:

import br.com.dj4te.horapratica02.modelos.*;
import java.lang.Thread;
import java.util.Scanner;


public class Principal {
    public static void main(String[] args) throws InterruptedException {
        System.out.println("Hora Prática Java OOP número 2");

        System.out.println("**********Conta Bancária**********");
        ContaBancaria contaBancaria = new ContaBancaria();
        contaBancaria.setNumeroConta(1234);
        contaBancaria.setSaldo(1599);
        contaBancaria.setTitular("José Maria");
        contaBancaria.exibeDadosDaConta();
        Thread.sleep(2000);

        System.out.println("**********Idade da Pessoa**********");
        IdadePessoa idadePessoa = new IdadePessoa();
        idadePessoa.setNome("Giuliano Veiga");
        idadePessoa.setIdade(45);
        idadePessoa.exibeDadosDaPessoa();
        idadePessoa.verificaIdade();
        Thread.sleep(2000);

        System.out.println("**********Nota do Aluno**********");
        Aluno aluno = new Aluno();
        aluno.dadosDoAluno();
        aluno.exibirResultado();
        Thread.sleep(2000);

        System.out.println("**********Desconto Produto**********");
        Produto produto = new Produto();
        Scanner scanner = new Scanner(System.in);
        produto.setNomeProduto("Televisão");
        produto.setPreco(2599.98);
        System.out.println("Produto: " + produto.getNomeProduto());
        System.out.println("Preco: R$ " + produto.getPreco());
        System.out.println("Digite o percentual do desconto (%):");
        produto.setDesconto(scanner.nextInt());
        System.out.println("Valor total do desconto: " + produto.calculaValorDesconto());
        System.out.println("Preço final do produto: R$ " + produto.getPrecoFinal());
        Thread.sleep(2000);

        System.out.println("**********Livro do Dia**********");
        Livro livro = new Livro();
        livro.setTitulo("A Divina Comédia");
        livro.setAutor("Dante Alighieri");
        livro.setAnoLancamento(1843);
        livro.setEditora("Editora 34");
        System.out.println("Livro do dia: " + livro.getTitulo());
        System.out.println("Ficha Técnica:");
        livro.exibeFichaTecnica();
    }
}

Farei um outro post com a package por causa do limite de caracteres.

2 respostas
solução!

Oi, Guilherme! Tudo bem?

Uau, gostei de ver a sua empolgação com os estudos! Fico feliz demais em saber que você está animado com o aprendizado de Java e está se dedicando aos desafios. A prática é realmente uma das melhores maneiras de fixar o conteúdo.

Sobre a sua abordagem de resolver os exercícios em uma única classe principal, é uma maneira interessante de consolidar o conhecimento, especialmente se você está focando em entender a execução dos métodos e a interação entre objetos. No entanto, é importante lembrar que quando estiver trabalhando com projetos maiores, é uma boa prática separar as responsabilidades em diferentes classes para deixar o código organizado e mais fácil de manter. Mas para fins didáticos, a maneira como você fez está super tranquila de usar.

Deixo algumas dicas abaixo sobre o seu código com ideias de melhorias futuras e pontos que gostei:

  1. Uso de Thread.sleep: Isso é uma boa ideia para dar uma pausa entre as execuções e tornar a saída mais legível. Apenas tenha cuidado com o uso excessivo, pois pode tornar o programa mais lento sem necessidade.

  2. Organização do Código: Você está usando System.out.println para separar os exercícios, o que é ótimo para identificar qual parte do código está sendo executada. Isso ajuda na depuração e compreensão do fluxo do programa.

  3. Uso de Scanner: É uma boa prática fechar o Scanner após o uso para evitar vazamento de recursos. Você pode fazer isso usando scanner.close() no final do seu método main. Não sei se chegou a fazer isso no seu outro post, mas é uma boa prática.

  4. Separação de Responsabilidades: Em projetos futuros, considere separar cada exercício em métodos diferentes ou até mesmo em classes diferentes, para seguir os princípios de responsabilidade única e modularidade, pra treinar esses conceitos também.

Eu gostei muito de ver toda a sua animação e dedicação e espero que essas dicas ajudem você a continuar evoluindo no seu aprendizado de Java. Continue assim, firme nos estudos e se desafiando!

Em caso de dúvidas, conte com o apoio do fórum :)

Um abraço e bons estudos!

Muito obrigado pela resposta e pelas dicas Rafaela. Alguns pontos que você mencionou eu ainda não vi no curso, tal como a parte de fechar a função scanner no fim do código. Estou sempre aberto ao conhecimento e aprendizado, apesar do tempo estar um pouco curto (kkkkkk)! Sempre que tiver dúvidas estarei recorrendo a vocês. Agradeço mais uma vez a atenção.