class Agencia{
String nome;
String numero_agencia;
Conta[] contas;
int livre = 0;
void adiciona_conta(Conta c){
this.contas[this.livre] = c;
this.livre++;
}
void mostra(){
for(int i = 0; i < contas.length; i++){
Conta pessoa = this.contas[i];
System.out.println("\n");
System.out.println("Nome: " + pessoa.nome);
System.out.println("CPF: " + pessoa.cpf);
System.out.println("Saldo: " + pessoa.saldo);
System.out.println("Numero da conta: " + pessoa.numeroConta);
pessoa.data_de_entrada = new Data();
System.out.println("Aniversário: " + pessoa.data_de_entrada.getFormatada());
}
}
}
class Conta{
String nome;
String cpf;
String numeroConta;
Data data_de_entrada;
double saldo;
boolean saque(double valor){
if(valor > saldo){
return false;
}else{
this.saldo -= valor;
return true;
}
}
void deposito(double valor){
this.saldo += valor;
}
boolean tranferencia(Conta destino, double valor){
boolean retirou = this.saque(valor);
if(retirou == false){
return false;
} else{
destino.deposito(valor);
return true;
}
}
}
class Data{
int dia;
int mes;
int ano;
void preenche_data(int dia, int mes, int ano){
this.dia = dia;
this.mes = mes;
this.ano = ano;
}
String getFormatada(){
return dia + "/" + mes + "/" + ano;
}
}
class Contas{
public static void main(String[] args){
Agencia itau = new Agencia();
itau.contas = new Conta[10];
Conta pedro = new Conta();
pedro.nome = "Pedro";
pedro.cpf = "123456789";
pedro.numeroConta = "654321";
pedro.saldo = 100;
pedro.data_de_entrada.preenche_data(12, 12, 2012);
itau.adiciona_conta(pedro);
Conta paulo = new Conta();
paulo.nome = "Paulo";
paulo.cpf = "987654321";
paulo.numeroConta = "123456";
paulo.saldo = 700;
paulo.data_de_entrada.preenche_data(12, 05, 2006);
itau.adiciona_conta(paulo);
itau.mostra();
}
}
Como vc esta tentando executar?
é tudo em um arquivo? Qual o nome?
O código está todo em um mesmo arquivo, para executar primeiro eu compilo ele no console (“javac banco.java”) e depois eu executo a classe Contas (’‘java Contas’), estaque deveria imprimir os dados das contas
cara
coloca um System.out.println( " tenho tantas contas: " + this.livre );
e o seu mostra deveria usar o this.livre como limite do for, não o tamanho de contas pois vc não inicializou as outras posições e fatalmente teras um null pointer exception
Muito obrigado!! O código rodou aqui, agora só mais uma dúvida. Porque este outro código roda normalmente? Não consigo notar o que fiz de diferente.
class Empresa{
String nome;
String cnpj;
Funcionario[] empregados;
int livre = 0;
void adiciona(Funcionario f){
this.empregados[this.livre] = f;
this.livre++;
}
void mostra(){
for(int i = 0; i < empregados.length; i++){
Funcionario funcionario = this.empregados[i];
System.out.println("Nome: " + funcionario.nome);
System.out.println("Departamento: " + funcionario.departamento);
System.out.println("Salário: " + funcionario.salario);
funcionario.data_de_entrada = new Data();
System.out.println("Data de nascimento: " + funcionario.data_de_entrada.getFormatada());
System.out.println("RG: " + funcionario.rg);
System.out.println("\n");
}
}
boolean contem(Funcionario f){
for(int i = 0; i < empregados.length; i++){
if(f == this.empregados[i]){
return true;
}
}
return false;
}
}
class Funcionario{
String nome;
String departamento;
double salario;
Data data_de_entrada;
String rg;
void recebe_aumento(double aumento){
this.salario += aumento;
}
double ganho_anual(){
return this.salario * 12;
}
}
class Data{
int dia;
int mes;
int ano;
void preenche_data(int dia, int mes, int ano){
this.dia = dia;
this.mes = mes;
this.ano = ano;
}
String getFormatada(){
return this.dia + "/" + this.mes + "/" + this.ano;
}
}
class empresa_funcionarios{
public static void main(String[] args){
Empresa empresa = new Empresa();
empresa.empregados = new Funcionario[3];
Funcionario joao = new Funcionario();
joao.salario = 1000;
empresa.adiciona(joao);
Funcionario paulo = new Funcionario();
paulo.salario = 1200;
empresa.adiciona(paulo);
Funcionario pedro = new Funcionario();
pedro.salario = 900;
empresa.adiciona(pedro);
empresa.mostra();
}
}