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.
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;
}
}
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.