Estou com algumas duvidas sobre esse meu programa, falta terminar muita coisa. Mas é o seguinte queria alguma forma para quando acessasse o Switch no case 1 ele guardasse todos os dados que eu inserisse e depois quando através do While eu pedisse para cadastrar mais contas, as contas que eu tivesse criado antes não fossem sobrescritas... outra coisa qual é a melhor forma de associar um objeto da classe Cliente a um objeto da classe Conta?
Agradeço desde já quem puder me ajudar...
public class Cliente {
private String nome;
private String endereço;
private String cpf;
private int idade;
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getEndereço() {
return endereço;
}
public void setEndereço(String endereço) {
this.endereço = endereço;
}
public String getCpf() {
return cpf;
}
public void setCpf(String cpf) {
this.cpf = cpf;
}
public int getIdade() {
return idade;
}
public void setIdade(int idade) {
this.idade = idade;
}
}
public class Conta
{
private double saldo;
private double limite;
private int numero;
Cliente titular; // vê se precisa ser protected ou pode ser private
private static int totalDeContas;
// gets e sets
public double getSaldo() {
return saldo;
}
public void setSaldo(double saldo) {
this.saldo = saldo;
}
public double getLimite() {
return limite;
}
public void setLimite(double limite) {
this.limite = limite;
}
public int getNumero() {
return numero;
}
public void setNumero(int numero) {
this.numero = numero;
}
public Cliente getTitular() {
return titular;
}
public void setTitular(Cliente titular) {
this.titular = titular;
}
//costrutores
Conta(){
Conta.totalDeContas+=1;
}
//metodos
void saca(double valor){
if(valor>this.saldo+this.limite)
{
System.out.println("O saque não é possivel pois é maior que o limite da conta");
}
else
{
this.saldo-=valor;
}
}
void deposita(double valor){
this.saldo+=valor;
}
void transfere(Conta destino,double valor){
if(valor>this.saldo+this.limite)
{
System.out.println("A conta não possui dinheiro suficiente para o deposito");
}
else
{
this.saldo-=valor;
destino.saldo+=valor;
}
}
}
import java.util.Scanner;
public class ProgramaConta {
public static void main(String[] args) {
//usar swicth case só pra metodos, nunca para guardar valores
int opção;
int opçãosair;
Scanner scanner = new Scanner( System.in );
do{
opçãosair=0;
System.out.println("Digite 1 para cadastrar os clientes do banco");
System.out.println("Digite 2 para visualizar os clientes do banco");
System.out.println("Digite 3 para visualizar transferencias");
System.out.println("Digite 0 para sair");
opção=scanner.nextInt();
switch(opção)
{
case 1:
// os objetos contas só vaão ser criados no case 1; é melhor tirar o switch case e coloca ifs
int opçãowhile;
do {
int numeroDeContas;
String nome;
String cpf;
int numeroConta,idade;
double limite;
System.out.println("CADASTRO CLIENTES");
System.out.println("Digite o numero de contas que serão criadas");
numeroDeContas=scanner.nextInt();
Conta[] contas=new Conta[numeroDeContas];
Cliente[] clientes=new Cliente[numeroDeContas];
for(int i=0;i<contas.length;i++)
{
contas[i] = new Conta();
clientes[i]=new Cliente();
contas[i].titular=clientes[i];
System.out.println("Digite o nome do cliente");
nome=scanner.next();
contas[i].titular.setNome(nome);
System.out.println("Digite o numero do cpf do cliente ");
cpf=scanner.next();
contas[i].titular.setCpf(cpf);
System.out.println("Digite a idade do cliente ");
idade=scanner.nextInt();
contas[i].titular.setIdade(idade);
System.out.println("Digite o numero da conta ");
numeroConta=scanner.nextInt();
if(numeroConta==contas[i].getNumero())
{
System.out.println("Esse numero de conta já foi usado porfavor digite outro ");
}
else
{
contas[i].setNumero(numeroConta);
}
System.out.println("Digite o limite da conta do cliente ");
limite=scanner.nextDouble();
contas[i].setLimite(limite);
//criar alguma coisa para não perder os dados quando cadastrar mais clientes
}
System.out.println("Deseja cadastrar mais clientes sim-1 não-2");
opçãowhile=scanner.nextInt();
}while(opçãowhile==1);
case 2:
for(int i=0;i<contas.length;i++) {
System.out.println(Conta[i].titular.getNome);
System.out.println(contas[i].titular.getCpf);
System.out.println(contas[i].titular.getIdade);
System.out.println(contas[i].titular.getNumero);
}
break;
case 3:
break;
case 0:
System.out.println("Deseja sair realmente do programa sim-1 não-2");
opçãosair=scanner.nextInt();
break;
}
}while(opçãosair!=1);
}
}
