Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original
1
UNOPAR – ANHANGUERA – SÃO PAULO
PORTFÓLIO – RELATÓRIO DE AULA PRÁTICA
NOME DA DISCIPLINA – LINGUAGEM ORIENTADA AO OBJETO.
SÃO PAULO / SP
2024
2
ALUNO:
FERNANDO MARCELINO
PORTFÓLIO – RELATÓRIO DE AULA PRÁTICA
NOME DA DISCIPLINA – LINGUAGEM ORIENTADA AO OBJETO.
Trabalho apresentado ao Curso (Engenharia de
Software) da UNOPAR – Anhanguera, para a disciplina
Libguagem Orientada ao Objeto.
Orientador: Prof. Anderson Inacio Salata de Abreu.
SÃO PAULO / SP
2024
3
Sumário
Introdução. .................................................................................................................................... 4
Objetivos. ...................................................................................................................................... 5
Desenvolvimento. ......................................................................................................................... 7
1. Instância do Scanner. ......................................................................................................................................... 7
2. Coleta de Dados do Cliente. .............................................................................................................................. 7
3. Criação do Cliente e Conta Bancária................................................................................................................ 7
4. Menu de Opções. ................................................................................................................................................ 7
5. Tratamento da Seleção do Usuário. ................................................................................................................. 8
6. Finalização do Loop e Encerramento do Scanner .......................................................................................... 8
Resultados. ................................................................................................................................... 9
Código completo ........................................................................................................................ 12
Conclusão ................................................................................................................................... 17
Referências ................................................................................................................................. 18
4
Introdução.
O presente projeto tem como objetivo desenvolver uma aplicação básica de gerenciamento
bancário utilizando a linguagem de programação Java e os principais conceitos de programação
orientada a objetos (POO). A aplicação foi construída com o uso do ambiente de desenvolvimento
NetBeans, com o propósito de reforçar e aplicar os conhecimentos adquiridos sobre POO.
A orientação a objetos é um paradigma de programação que organiza o código em torno de
"objetos" que representam tanto dados quanto comportamentos associados a esses dados. Neste
projeto, os conceitos de classes, objetos, encapsulamento, métodos e estruturas de controle são
utilizados para implementar funcionalidades comuns em sistemas bancários, como cadastro de
usuários, consulta de saldo, depósitos e saques.
O sistema proposto possibilita ao usuário realizar operações bancárias de forma interativa e
repetitiva, até que ele escolha encerrar a aplicação. A implementação de um sistema desse tipo,
ainda que em escala reduzida, é uma excelente oportunidade para compreender como os
conceitos de POO podem ser aplicados para resolver problemas do mundo real e estruturar o
código de maneira mais organizada e reutilizável.
NetBeans IDE:
5
Objetivos.
1. Fixar os Conceitos de Programação Orientada a Objetos (POO)
O principal objetivo é aplicar os conceitos fundamentais de POO, que incluem encapsulamento,
abstração, herança e polimorfismo.
A prática com esses conceitos visa melhorar a compreensão de como organizar e estruturar
código de maneira modular e reutilizável.
O projeto de gerenciamento bancário servirá como uma oportunidade prática para trabalhar com
objetos que representam contas bancárias e clientes, mostrando como modelar entidades do
mundo real em código.
2. Empregar Práticas de Instanciação de Classes Java
Nesta etapa, o foco é aprender a criar instâncias (objetos) a partir de classes.
No contexto do projeto, serão criados objetos que representam clientes bancários e suas contas.
Por exemplo, um objeto "Cliente" pode armazenar os dados pessoais (nome, sobrenome, CPF),
enquanto um objeto "ContaBancaria" gerencia o saldo e as operações.
O objetivo é entender como criar e manipular objetos em Java, instanciando as classes e
utilizando seus métodos e atributos para realizar operações.
3. Utilizar Métodos e Atributos em Java
O desenvolvimento do projeto requer a definição de métodos que realizam ações (consultar
saldo, depositar, sacar) e atributos que armazenam o estado dos objetos (nome do cliente, saldo
da conta).
A prática inclui o uso de modificadores de acesso (como private, public) para controlar a
visibilidade e o acesso aos atributos e métodos, aplicando o conceito de encapsulamento.
Também será explorado o uso de métodos "getters" e "setters" para manipular os dados dos
objetos de forma segura, protegendo a integridade dos atributos.
4. Utilizar Pacotes da Linguagem Java para Implementar o Software
Organizar o código em pacotes facilita a manutenção e a clareza do projeto. Por exemplo, um
pacote chamado banco pode conter as classes Cliente e ContaBancaria.
Será necessário utilizar bibliotecas padrão do Java para implementar funcionalidades básicas,
como a leitura de dados do usuário via Scanner.
6
A estruturação do código em pacotes segue boas práticas de desenvolvimento e contribui para a
modularidade e reutilização.
5. Desenvolver uma Aplicação no NetBeans
O uso da IDE NetBeans simplifica o processo de desenvolvimento, oferecendo ferramentas
integradas para a criação de projetos, depuração e execução.
O objetivo é aprender a configurar um projeto Java com Maven, utilizando o NetBeans para
organizar o código e suas dependências.
Além disso, a prática inclui a familiarização com o ambiente de desenvolvimento, uso do editor de
código, execução de programas e depuração de erros.
7
Desenvolvimento.
O método main é o ponto de entrada do programa e controla a interação com o usuário,
permitindo que ele gerencie a conta bancária. Vou dividir a explicação em seções para facilitar a
compreensão.
1. Instância do Scanner.
java
Scanner scanner = new Scanner(System.in);
Aqui, é criada uma instância da classe Scanner, que é usada para ler a entrada do usuário a
partir da entrada padrão (console).
2. Coleta de Dados do Cliente.
java
System.out.print("Informe o nome do cliente: ");
String nome = scanner.nextLine();
System.out.print("Informe o sobrenome do cliente: ");
String sobrenome = scanner.nextLine();
System.out.print("Informe o CPF do cliente: ");
String cpf = scanner.nextLine();
O programa solicita ao usuário que insira informações sobre o cliente, como nome, sobrenome e
CPF. As entradas são lidas sequencialmente usando scanner.nextLine().
3. Criação do Cliente e Conta Bancária.
java
Cliente cliente = new Cliente(nome, sobrenome, cpf);
ContaBancaria conta = new ContaBancaria(cliente);
Após coletar os dados, o programa cria uma instância da classe Cliente e, em seguida, instancia
a classe ContaBancaria, passando o cliente como argumento. Isso estabelece a relação entre o
cliente e sua conta.
4. Menu de Opções.
java
int opcao;
do {
// Exibição do menu
System.out.println("\n=== Menu ===");
System.out.println("1. Consultar saldo");
System.out.println("2. Depositar");
System.out.println("3. Sacar");
System.out.println("4. Sair");
System.out.print("Escolha uma opção: ");
opcao = scanner.nextInt();
O programa entra em um loop do-while, que exibe um menu de opções. O usuário é solicitado a
escolher uma opção digitando um número correspondente. A escolha é armazenada na
variável opção.
8
5. Tratamento da Seleção do Usuário.
java
switch (opcao) {
case 1:
conta.consultarSaldo();
break;
case 2:
System.out.print("Informe o valor do depósito: ");
double valorDeposito = scanner.nextDouble();
conta.depositar(valorDeposito);
break;
case 3:
System.out.print("Informe o valor do saque: ");
double valorSaque = scanner.nextDouble();
conta.sacar(valorSaque);
break;
case 4:
System.out.println("Encerrando o sistema. Obrigado por utilizar nossos serviços!");
break;
default:
System.out.println("Opção inválida. Tente novamente.");
break;
}
Dentro do loop, o programa utiliza uma estrutura switch para determinar a ação a ser realizada
com base na opção escolhida pelo usuário. As ações incluem:
Consultar Saldo: Chama o método consultarSaldo() da classe ContaBancaria.
Depositar: Solicita ao usuário o valor a ser depositado e chama o método depositar().
Sacar: Solicita ao usuário o valor a ser sacado e chama o método sacar().
Sair: Uma mensagem é exibida e o loop termina.
Opção Inválida: Um aviso é mostrado para escolhas que não se enquadram nas opções
disponíveis.
6. Finalização do Loop e Encerramento do Scanner
java
} while (opcao != 4);
scanner.close();
O loop continua até que o usuário escolha a opção 4 para sair. Quando isso ocorre, o scanner é
fechado, liberando os recursos associados à sua operação.
O método main é responsável por toda a lógica interativa do programa, permitindo que o
usuário execute operações básicas em sua conta bancária. Utiliza estruturas de controle
como do-while e switch, além de métodos da classe ContaBancaria para realizar
operações de saque, depósito e consulta de saldo. O tratamento das entradas do usuário e
as validações realizadas proporcionam uma experiência de usuário intuitiva e direta.
9
Resultados.
Dados do Cliente.
Consulta Saldo.
10
Depositar.
Sacar.
11
Sair.
12
Código completo
package com.mycompany.gerenciabanco;
/**
*
* @author FERNANDO-PC
*/
import java.util.Scanner;
public class GerenciaBanco {
// Classe interna para representar o cliente
static class Cliente {
private String nome;
private String sobrenome;
private String cpf;
public Cliente(String nome, String sobrenome, String cpf) {
this.nome = nome;
this.sobrenome = sobrenome;
this.cpf = cpf;
}
public String getNome() {
return nome;
}
public String getSobrenome() {
return sobrenome;
}
public String getCpf() {
13
return cpf;
}
@Override
public String toString() {
return "Cliente: " + nome + " " + sobrenome + ", CPF: " + cpf;
}
}
// Classe interna para representar a conta bancária
static class ContaBancaria {
private Cliente cliente;
private double saldo;
public ContaBancaria(Cliente cliente) {
this.cliente = cliente;
this.saldo = 0.0; // Saldo inicial zero
}
public void depositar(double valor) {
if (valor > 0) {
saldo += valor;
System.out.println("Depósito realizado com sucesso!");
} else {
System.out.println("Valor de depósito inválido.");
}
}
public void sacar(double valor) {
if (valor > 0 && valor
em
Java e na compreensão do paradigma orientado a objetos, preparando o terreno para a
construção de sistemas mais complexos no futuro. A experiência adquirida será de grande
utilidade para projetos futuros que exijam um design estruturado e eficiente.
18
Referências
https://pt.wikipedia.org/wiki/NetBeans
https://www.oracle.com/br/application-development/netbeans/
http://www.linhadecodigo.com.br/artigo/805/programacao-java-com-ide-netbeans.aspx
https://www.reddit.com/r/brdev/comments/154tlcb/netbeans_ide/
https://www.reddit.com/r/brdev/comments/154tlcb/netbeans_ide/
https://www.oracle.com/br/application-development/netbeans/
https://www.oracle.com/br/application-development/netbeans/
http://www.linhadecodigo.com.br/artigo/805/programacao-java-com-ide-netbeans.aspx