Programar uma conta de energia

Olá tenho as seguintes classe: ContaEnergia e GerenciaContaEnergia abaixo, como faria pro main rodar todas elas?

/**

  • ContaEnergia
    */
    public class ContaEnergia {

    private String data, nomeConsumidor;
    private int numInstalacao, quantidade;
    private boolean paga = true;
    private int totalConta;

    public ContaEnergia (String data, int numInstalacao, String nomeConsumidor, int quantidade){
    this.data = data;
    this.numInstalacao = numInstalacao;
    this.nomeConsumidor = nomeConsumidor;
    this.quantidade = quantidade;

    }

    public String getData() {
    return data;
    }
    public int getNumInstalacao() {
    return numInstalacao;
    }
    public String getNomeConsumidor() {
    return nomeConsumidor;
    }
    public int getQuantidade() {
    return quantidade;
    }

    public boolean isPaga() {
    return paga;
    }

    public void setPaga(boolean paga) {
    this.paga = paga;
    }

    public float totalConta(float imposto, float valorKw) {
    return imposto * valorKw;
    }

    public String exibir(){
    return numInstalacao + ": " + data + " : " + nomeConsumidor + " : " + quantidade + " - " + paga;
    }

}

import java.util.*;

public class GerenciaContaEnergia {

public ArrayList<ContaEnergia> conta = new ArrayList<ContaEnergia>();

public void cadastrarConta(ContaEnergia c) {
	this.conta.add(c);
}

public boolean removerConta(int numInstalacao, String data) {
	boolean status = this.conta.remove(buscarConta(numInstalacao, data));
	if(status) {
		System.out.println("Conta removida");
	}else {
		System.out.println("Conta não encontada");
	}
	return status;

}

public String listarTodas() {
	StringBuffer sb = new StringBuffer();
	for (ContaEnergia contaEnergia : conta) {
		sb.append(contaEnergia.exibir());
		sb.append(";");
	}
	if(sb.toString().equals("")) {
		sb.append("Nenhuma conta cadastrada.");
	}
	return sb.toString();
}

public String buscarContas(int numInstalacao) {
	StringBuffer sb = new StringBuffer();
	for (ContaEnergia contaEnergia : conta) {
		if(contaEnergia.getNumInstalacao() == numInstalacao) {
			sb.append(contaEnergia.getData());
			sb.append(";");
		}
	}
	if(sb.toString().equals("")) {
		sb.append("Nenhuma conta encontrada.");
	}
	return sb.toString();
}

public String listarContasNaoPagas() {
	StringBuffer sb = new StringBuffer();
	for (ContaEnergia contaEnergia : conta) {
		if(contaEnergia.isPaga() == false) {
			sb.append(contaEnergia.getNumInstalacao());
			sb.append("-");
			sb.append(contaEnergia.getData());
			sb.append(";");
		}	
	}
	if(sb.toString().equals("")) {
		sb.append("Nenhuma conta encontrada.");
	}
	return sb.toString();
}

public ContaEnergia buscarConta(int numInstalacao, String data) {
	for (int i = 0; i < conta.size(); i++) {
		if (numInstalacao == conta.get(i).getNumInstalacao() && data.equals(conta.get(i).getData())) {
			return conta.get(i);
		}
	}
	return null;
}

public boolean pagarConta(int numInstalacao, String data) {
	try {
		buscarConta(numInstalacao, data).setPaga(true);
		return true;
	}catch (NullPointerException e) {
		System.out.println("Conta nao encontrada");
	}
	return false;
}

}

Olá tudo bem?

Instancia as classses e chama os métodos na ordem correta…