Baixe o app para aproveitar ainda mais
Prévia do material em texto
ANHANGUERA EDUCACIONAL VILA MARIANA ENGENHARIA DE SOFTWARE - BACHARELADO SÃO PAULO – SP 2023 PORTFÓLIO - RELATÓRIO DE AULA PRÁTICA: LINGUAGEM ORIENTADA A OBJETO Trabalho de portfólio apresentado como requisito parcial para obtenção de pontos para a média semestral. Orientador: SÃO PAULO – SP 2023 3 INTRODUÇÃO Na aula prática foi proposta a construção de uma aplicação Java utilizando os principais conceitos do paradigma de Orientação a Objetos, onde iremos criar um projeto baseado em uma conta bancária. MÉTODO Na aula prática, foi necessário criar um novo projeto, utilizando Java With Maven e Java Application com o nome GerenciaBanco. Logo após a inicialização comecei a montar a estrutura inicial do código, optei por iniciar com o saldo em zero e usar o Double por ser uma variável que permite armazenar números decimais com alta precisão. Em seguida, durante a minha elaboração, decidi criar a primeira estrutura utilizando if e else: 4 Utilizando o método main comecei a codificar a parte do cliente do banco, inicializei o scanner para que o cliente pudesse digitar o que foi pedido e utilizando o scanner.nextLine() para receber o que foi digitado. Resolvi fazer uma concatenação com o nome e o sobrenome e uma frase que escolhi aleatoriamente, como se a aplicação estivesse conversando com o usuário, para que ficasse mais “interativo” e um pouco mais divertido: Já no menu de escolha criei uma estrutura de repetição utilizando o While, ou seja, enquanto a condição for verdadeira(True) ele vai continuar em loop. Aqui utilizei a estrutura de controle de fluxo condicional Switch como orientado no documento disponibilizado pela faculdade, e novamente o scanner para ler qual foi a escolha do cliente com base 5 no menu mostrado acima: Durante o teste do meu código reparei que quando eu colocava um número com o formato inesperado no momento do depósito, ou seja um que não se enquadra no double, a IDE me retornava o seguinte erro: java.util.InputMismatchException. Para fazer o tratamento deste erro optei por usar o mecanismo de controle de exceções do Java, utilizei então o Try e o Catch. Optei durante o tratamento da exceção colocar uma mensagem especifica: 6 RESULTADOS O resultado da aula prática ficou dentro do proposto, e o código rodou como esperado. Então segue os testes finalizado: 7 8 CÓDIGO FONTE: PACKAGE COM.MYCOMPANY.GERENCIABANCO; IMPORT JAVA.UTIL.SCANNER; /** * * @AUTHOR FRANCIELE LIRA */ PUBLIC CLASS GERENCIABANCO { PRIVATE STRING NOME; PRIVATE STRING SOBRENOME; PRIVATE STRING CPF; PRIVATE DOUBLE SALDO; PUBLIC GERENCIABANCO (STRING NOME, STRING SOBRENOME, STRING CPF) { THIS.NOME = NOME; THIS.SOBRENOME = SOBRENOME; THIS.CPF = CPF; THIS.SALDO = 0.0; } PUBLIC VOID CONSULTARSALDO() { SYSTEM.OUT.PRINTLN("O SALDO ATUAL DA SUA CONTA É: " + SALDO); } PUBLIC VOID FAZERDEPOSITO(DOUBLE VALOR) { SALDO += VALOR; // ACRESENTAR O VALOR DIGITADO PELO CLIENTE AO SALDO. SYSTEM.OUT.PRINTLN("DEPÓSITO DE R$" + VALOR + " EFETUADO COM SUCESSO!"); } PUBLIC VOID FAZERSAQUE(DOUBLE VALOR) { //SE O SALDO FOR MENOR AO VALOR DIGITADO ENTÃO: IF (VALOR <= SALDO) { SALDO -= VALOR; // RETIRAR VALOR DIGITADO DO SALDO. SYSTEM.OUT.PRINTLN("SAQUE DE R$" + VALOR + " EFETUADO COM SUCESSO!"); } ELSE { 9 SYSTEM.OUT.PRINTLN("POXA, VERIFIQUEI AQUI QUE O SEU SALDO É " + "INSUFICIENTE PARA REALIZAR O SAQUE."); } } // PARTE DO CLIENTE PUBLIC STATIC VOID MAIN(STRING[] ARGS) { SCANNER SCANNER = NEW SCANNER(SYSTEM.IN); // INICIALIZANDO O SCANNER. SYSTEM.OUT.PRINTLN("OLÁ, BEM-VINDO AO NOSSO BANCO!"); SYSTEM.OUT.PRINT("PARA COMEÇAR POR FAVOR DIGITE SEU NOME: "); STRING NOME = SCANNER.NEXTLINE(); SYSTEM.OUT.PRINT("CERTO "+ NOME + ". DIGITE TAMBÉM O SEU SOBRENOME: "); STRING SOBRENOME = SCANNER.NEXTLINE(); SYSTEM.OUT.PRINT("LEGAL " + NOME + " " + SOBRENOME + ". É UM PRAZER RECEBER VOCÊ AQUI! :)"); SYSTEM.OUT.PRINT("\NAGORA POR FAVOR DIGITE SEU CPF: "); STRING CPF = SCANNER.NEXTLINE(); GERENCIABANCO CONTA = NEW GERENCIABANCO(NOME, SOBRENOME, CPF); WHILE (TRUE) { SYSTEM.OUT.PRINTLN("\N CERTO, PARA CONTINUAR ESCOLHA UMA OPÇÃO:"); SYSTEM.OUT.PRINTLN("1. CONSULTAR SALDO"); SYSTEM.OUT.PRINTLN("2. DEPÓSITO"); SYSTEM.OUT.PRINTLN("3. SAQUE"); SYSTEM.OUT.PRINTLN("4. SAIR"); INT OPCAO = SCANNER.NEXTINT(); // LER A OPÇÃO DIGITADA PELO CLIENTE. SWITCH (OPCAO) { CASE 1: CONTA.CONSULTARSALDO(); BREAK; CASE 2: TRY { SYSTEM.OUT.PRINT("DIGITE O VALOR DO DEPÓSITO: "); DOUBLE VALORDEPOSITO = SCANNER.NEXTDOUBLE(); 10 CONTA.FAZERDEPOSITO(VALORDEPOSITO); } CATCH (JAVA.UTIL.INPUTMISMATCHEXCEPTION E) { SYSTEM.OUT.PRINTLN("VALOR DE DEPÓSITO ESTÁ INVÁLIDO. " + "CERTIFIQUE-SE DE USAR O FORMATO CORRETO (POR EXEMPLO, 585,20)."); SCANNER.NEXTLINE(); // LIMPAR O BUFFER DO SCANNER } BREAK; CASE 3: SYSTEM.OUT.PRINT("DIGITE O VALOR DO SAQUE: "); DOUBLE VALORSAQUE = SCANNER.NEXTDOUBLE(); CONTA.FAZERSAQUE(VALORSAQUE); BREAK; CASE 4: SYSTEM.OUT.PRINTLN("OBRIGADA PELA PREFERENCIA, SERÁ SEMPRE UM PRAZER ATENDER VOCÊ " + NOME + ". ATÉ BREVE! :) "); SCANNER.CLOSE(); SYSTEM.EXIT(0); DEFAULT: SYSTEM.OUT.PRINTLN("OPÇÃO DIGITADA ESTÁ INVÁLIDA. TENTE NOVAMENTE."); } } } }
Compartilhar