Mini - Sistema bancário

2 respostas
peresjuliao

Olá,

Estou desenvolvendo um mini sistema bancário, para fins didáticos.

Segue a abaixo as classes

Classe Cliente
package br.com.peres;

public class Cliente {
	private String nome;
	private String logradouro;
	private String telFixo;
	private String telCel;
	private Login login;

	public Cliente(String n, String l, String tf, String tc, String u, String s) {
		setNome(n);
		setLogradouro(l);
		setTelFixo(tf);
		setTelCel(tc);
		setLogin(u, s);
	}

	public void setNome(String name) {
		nome = name;
	}

	public String getNome() {
		return nome;
	}

	public void setLogradouro(String log) {
		logradouro = log;
	}

	public String getLogradouro() {
		return logradouro;
	}

	public void setTelFixo(String tel) {
		telFixo = tel;
	}

	public String getTelFixo() {
		return telFixo;
	}

	public void setTelCel(String cel) {
		telCel = cel;
	}

	public String getTelCel() {
		return telCel;
	}

	public void setLogin(String user, String paswd) {
		login = new Login(user, paswd);
	}

	public String getUser() {
		return login.getNome();
	}

	public String getSenha() {
		return login.getPaswdUser();
	}

}
Classe ContaBancaria
package br.com.peres;

public class ContaBancaria {
	private int ag;
	private int cc;
	private Cliente dataCliente;
	private double saldo;

	public ContaBancaria(int agTmp, int ccTmp, Cliente cliTmp) {
		setAg(agTmp);
		setCc(ccTmp);
		setCliente(cliTmp);
		saldo = 0;
	}

	public void setAg(int agTmp) {
		ag = agTmp;
	}

	public int getAg() {
		return ag;
	}

	public void setCc(int ccTmp) {
		cc = ccTmp;
	}

	public int getCc() {
		return cc;
	}

	public void setCliente(Cliente objCli) {
		dataCliente = objCli;
	}

	public Cliente getCliente() {
		return dataCliente;
	}

	/*
	 * Retorno possiveis: false => erro, nao ocorreu deposito true => valor
	 * valido, deposito realizado
	 */
	public boolean deposito(double vlr) {
		if (vlr <= 0) {
			return false;
		}
		saldo = saldo + vlr;
		return true;
	}

	public boolean saque(double vlr) {
		if (vlr > saldo) {
			return false;
		}
		saldo = saldo - vlr;
		return true;
	}

	public double getSaldo() {
		return saldo;
	}

}
Classe Login
package br.com.peres;

public class Login {
	private String nomeUsuario;
	private String senha;

	public Login(String nomeUser, String paswd) {
		nomeUsuario = nomeUser;
		setPaswdUser(paswd);
	}

	public Login(String nomeUser) {
		nomeUsuario = nomeUser;
	}

	public void setNomeUser(String nameTmp) {
		nomeUsuario = nameTmp;
	}

	public String getNome() {
		return nomeUsuario;
	}

	public void setPaswdUser(String senha) {
		this.senha = senha;
	}

	public String getPaswdUser() {
		return senha;
	}
}
E finalmente a classe Main
package br.com.peres;

import java.util.Scanner;

public class Main {
	private static Cliente vetCli[];
	private static ContaBancaria vetCB[];

	private static final int TMH_VETCLI = 100;
	private static final int TMH_VETCB = 100;

	private static int contCli;
	private static int contCB;

	public static void main(String[] args) {
		contCli = 1;
		contCB = 0;

		vetCli = new Cliente[TMH_VETCLI];
		vetCB = new ContaBancaria[TMH_VETCB];

		vetCli[0] = new Cliente("Joao e maria", "Logradouro", "-", "-",
				"admin", "1234");

		System.out
				.println("**************** SISTEMA BANCARIO *******************");
		Scanner objScan = new Scanner(System.in);

		System.out.println("NOME DO USUARIO.: ");
		String objNomeUser = objScan.nextLine();

		System.out.println("SENHA DO USUARIO.: ");
		String objPaswdUser = objScan.nextLine();

		// verifica se existe o usuario
		if (contCli == 0) {
			System.out.println("Erro: nao possui usuarios cadastrados");
		} else {
			boolean flag = false;

			for (int countCli = 0; countCli < contCli; countCli++) {
				if (vetCli[countCli].getUser().equals(objNomeUser)) {
					if (vetCli[countCli].getSenha().equals(objPaswdUser)) {
						flag = true;
					}
				}
			}

			if (flag == false) {
				System.out.println("Dados invalidos para acessar o sistema!");
			} else {
				// se existir o usuario apresenta o proximo menu do sistema
				System.out.println("1 - Gerenciamento de Conta");
				System.out.println("2 - Gerenciamento de Cliente");
				System.out.println("3 - Sair");
				int opGR = objScan.nextInt();

				if (opGR == 1)
					apresentaGrCC();
				if (opGR == 2)
					apresentaGrCli();
			}
		}
	}

	private static void apresentaGrCC() {
		Scanner objScan = new Scanner(System.in);
		System.out.println("1 - Deposito");
		System.out.println("2 - Saque");
		System.out.println("3 - Saldo");
		System.out.println("4 - Sair");
		int opContBanc = objScan.nextInt();
	}

	private static void apresentaGrCli() {
		String nome, log, telf, telc, user, paswd;

		Scanner objScan = new Scanner(System.in);
		System.out.println("1 - Cadastro");
		System.out.println("2 - Consultar");
		System.out.println("3 - Alterar");
		System.out.println("4 - Excluir");
		System.out.println("5 - Sair");

		int opContBanc = objScan.nextInt();

		if (opContBanc == 1) {

			if (contCli > TMH_VETCLI) {
				System.out.println("Erro! Vetor cheio.");
			} else {
				System.out.println("Nome Cliente.: ");
				nome = objScan.nextLine();
				System.out.println("Logradouro Cliente.: ");
				log = objScan.nextLine();
				System.out.println("Telefone fixo.: ");
				telf = objScan.nextLine();
				System.out.println("Telefone celular.: ");
				telc = objScan.nextLine();
				System.out.println("User.: ");
				user = objScan.nextLine();
				System.out.println("Senha.: ");
				paswd = objScan.nextLine();

				vetCli[contCli] = new Cliente(nome, log, telf, telc, user,
						paswd);
				contCli++;
			}
		}
	}

}

A minha dúvida é se esses métodos na classe Main, estão de acordo com o paradigma da OO?

2 Respostas

E

Peres,

quando não houver nenhuma regra para
setar ou ler valores de um atributo da classe,
dispense os métodos get e set, declare a
variável como pública.

caio_ferreira

não, não faça isso, mesmo se você não for usar nenhuma regra para modificar ou recuperar um atributo da classe, você deve manter as váriaveis como private e utilizar os metodos set e get. Você pode não querer colocar uma regra agora para tal atributo, mas vai que daki algum tempo você tenha que fazer uma atualização no sistema, dai, você vai ter que revisar todas as suas classes que utilizam esse atributo. Um bom sistema Orientado a Objetos é obrigatório que tenha suas variaveis de instâncias declaradas como private e seus respectivos metodos get e set publicos.

Criado 20 de maio de 2010
Ultima resposta 20 de mai. de 2010
Respostas 2
Participantes 3