Dúvida com Classe

1 resposta
R

Basicamente eu tenho que fazer uma classe ler outra.
Porém não pode ser através de um arquivo gravado.

Eu cria numa classe as variaveis e na outra eu criei o método para executadas.
Só que eu dividi em alguns módulos e quando eu chamo de um módulo para outro ela não vai.

Esta é a classe da onde serão pegas as variaveis.
class Clientes {
    int nbcoc, nctac, tpctac;
    String nomec;
    double sdoctac, limitec;

    Clientes (){
        this (0,0,0,"",0,0);
    }

    Clientes (int nbco, int ncta, int tpcta, String nome, double sdocta, double limite){
        nbcoc = nbco;
        nctac = ncta;
        tpctac = tpcta;
        nomec = nome;
        sdoctac = sdocta;
        limitec = limite;
    }
}
Esta é a classe de onde serão tratadas as variaveis.
import java.io.*;
import javax.swing.*;
public class ManipulaClientes {
    public static void main (String args[]) throws IOException{
        int opc = 0;

        while (opc!=9){
            opc = Integer.parseInt(JOptionPane.showInputDialog("Escolha uma opção: \n1 - Cadastro de Clientes \n2 - Consulta de Clientes \n3 - Calculo de Juros \n9 - Sair"));
            switch (opc){
                case 1: Cadastra_Clientes();
                break;
                case 2: Consulta_Conta();
                break;
                case 3: Calcula_Juros();
                break;
                case 9: JOptionPane.showMessageDialog(null, "Fim do Programa!");
                break;
                default: JOptionPane.showMessageDialog(null, "Opção Inválida!\nTente novamente!");
                break;
            }
        }
    }

    static void Cadastra_Clientes() throws IOException{
        Clientes[] cliente = new Clientes[5];
        int i;
        String fileName = "ArquivoCliente.txt";
        BufferedWriter writer = new BufferedWriter(new FileWriter(fileName));

        for (i = 0; i<cliente.length;i++)
            cliente[i] = new Clientes();

        for (i = 0; i<cliente.length;i++){
            cliente[i].nbcoc = Integer.parseInt(JOptionPane.showInputDialog("Colocar número do Banco"));
            writer.write(Integer.toString(cliente[i].nbcoc));
            writer.newLine();


            cliente[i].nctac = Integer.parseInt(JOptionPane.showInputDialog("Colocar o número da Conta"));
            writer.write(Integer.toString(cliente[i].nctac));
            writer.newLine();


            while((cliente[i].tpctac<1)||(cliente[i].tpctac>5)){
                cliente[i].tpctac = Integer.parseInt(JOptionPane.showInputDialog("Colocar o Tipo de Conta (Valor entre 1 e 5)"));
                writer.write(Integer.toString(cliente[i].tpctac));
                writer.newLine();
            }

            cliente[i].nomec = JOptionPane.showInputDialog("Colocar Nome do Cliente");
            writer.write(cliente[i].nomec);
            writer.newLine();

            cliente[i].sdoctac = Double.parseDouble(JOptionPane.showInputDialog("Colocar saldo da conta"));
            writer.write(Double.toString(cliente[i].sdoctac));
            writer.newLine();

            cliente[i].limitec = Double.parseDouble(JOptionPane.showInputDialog("Colocar o limite da Conta"));
            writer.write(Double.toString(cliente[i].limitec));
            writer.newLine();
        }
        
        for (i = 0; i<cliente.length;i++){
            JOptionPane.showMessageDialog(null, "Número do Banco " +cliente[i].nbcoc + "\nNúmero da Conta " +cliente[i].nctac+ "\nTipo de Conta " +cliente[i].tpctac+ "\nNome do Cliente " +cliente[i].nomec+ "\nSaldo da Conta " +cliente[i].sdoctac+ "\nLimite da Conta " +cliente[i].limitec);
            System.out.println("Número do Banco " +cliente[i].nbcoc + "\nNúmero da Conta " +cliente[i].nctac+ "\nTipo de Conta " +cliente[i].tpctac+ "\nNome do Cliente " +cliente[i].nomec+ "\nSaldo da Conta " +cliente[i].sdoctac+ "\nLimite da Conta " +cliente[i].limitec);
        }
        writer.close();
    }

    static void Consulta_Conta() throws IOException{
        Clientes[] cliente = new Clientes[5];
        int i;

        String fileName = "ArquivoCliente.txt";
        BufferedReader ler = new BufferedReader(new FileReader(fileName));

        for (i = 0; i<cliente.length; i++)
            cliente[i] = new Clientes();

        for (i = 0; i<cliente.length; i++){
            cliente[i].nbcoc = Integer.parseInt(ler.readLine());
            cliente[i].nctac = Integer.parseInt(ler.readLine());
            cliente[i].tpctac = Integer.parseInt(ler.readLine());
            cliente[i].nomec = (ler.readLine());
            cliente[i].sdoctac = Double.parseDouble(ler.readLine());
            cliente[i].limitec = Double.parseDouble(ler.readLine());
        }

        for (i = 0; i<cliente.length; i++){
            JOptionPane.showMessageDialog(null, "Número do Banco " +cliente[i].nbcoc + "\nNúmero da Conta " +cliente[i].nctac+ "\nTipo de Conta " +cliente[i].tpctac+ "\nNome do Cliente " +cliente[i].nomec+ "\nSaldo da Conta " +cliente[i].sdoctac+ "\nLimite da Conta " +cliente[i].limitec);
            System.out.println("Número do Banco " +cliente[i].nbcoc + "\nNúmero da Conta " +cliente[i].nctac+ "\nTipo de Conta " +cliente[i].tpctac+ "\nNome do Cliente " +cliente[i].nomec+ "\nSaldo da Conta " +cliente[i].sdoctac+ "\nLimite da Conta " +cliente[i].limitec);
        }
        ler.close();
    }

    static void Calcula_Juros() throws IOException{
        Clientes[] cliente = new Clientes[5];
        int i;
        double juros[] = new double [5];
       
        

        for (i = 0; i<cliente.length; i++)
            cliente[i] = new Clientes();

       
       
        for (i = 0; i<cliente.length; i++){
            if (((cliente[i].tpctac)>=1)&&((cliente[i].tpctac)<=3)){
                juros[i] = ((cliente[i].limitec)-(cliente[i].sdoctac)) + (cliente[i].limitec*0.03);
            }
            else if (((cliente[i].tpctac)>3)&&((cliente[i].tpctac)<=5)){
                juros[i] = ((cliente[i].limitec)-(cliente[i].sdoctac)) + (cliente[i].limitec*0.05);           
            }
        }
       
        for (i = 0; i<cliente.length; i++){
            JOptionPane.showMessageDialog(null, "Os juros de " +cliente[i].nomec+ " é " +juros[i]);
            System.out.println("Os juros de " +cliente[i].nomec+ " é " +juros[i]);
        }

    }

}

Desculpem o código meio confuso, mas o que eu quero é que as variaveis que eu usei no módulo "Cadastra_Cliente" fiquem gravadas na memória para que o módulo "Calcula_Juros" possa usar.
Sem precisar ter um arquivo externo para faze-lo.

1 Resposta

C_Porto

Boa noite, uma opção é utilizar a interface Serializable, assim você implementa ela na classe Clientes e cada vez que cadastrar um cliente, seu objeto, através do processo de serialização, será guardado na memória,
assim fica mais fácil de manipular seus clientes, com consultas e com o cálculo de juros, veja se esse tópico esclarece um pouco mais http://www.guj.com.br/java/267170-problema-serializable, nesse caso ele utiliza a interface Serializable na classe Livro, e toda a operação de serialização está sendo realizada ao clicar do botão dentro da classe Jogo.

Criado 5 de maio de 2012
Ultima resposta 5 de mai. de 2012
Respostas 1
Participantes 2