Não consigo imprimir as informações no cmd, não sei o que está errado no códiigo (estou começando no estudo de java)

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();
	}

}