Exception in thread "main" java.lang.StackOverflowError

Por favor alguem pode me ajudar com esse codigo ele esta dando esse erro Exception in thread “main” java.lang.StackOverflowError
so quero q ele percorra td o arraylist

[code]public class CartaoDebito extends Cartao {
ArrayList c = new Agencia().getC();
public void valSenha(int senha){

	for (int i=0; i<c.size(); i++){
		
		System.out.println(c);
		
	}

public static void main(String[] c){
new CartaoDebito().valSenha(1);

}

}
[/code]

[code]public class Agencia {
int numAgencia;
ArrayList c = new ArrayList();
Agencia agn = new Agencia();

 public Agencia() {
	
	
 }

public ArrayList<ContaPessoa> getC() {
	return c;
}

public void setC(ArrayList<ContaPessoa> c) {
	this.c = c;
}

ContaPessoa a1 = new ContaPessoa(001,500);
 ContaPessoa a2 = new ContaPessoa(011,700);
 ContaPessoa a3 = new ContaPessoa(111,200);
 ContaPessoa a4 = new ContaPessoa(002,300);
 ContaPessoa a5 = new ContaPessoa(022,650);

public  Collection<ContaPessoa> carregaContas(){	
c.add(a1);
c.add(a2);
c.add(a3);
c.add(a4);
c.add(a5);
return c;
}	

}[/code]

Olhando por cima, creio que o problema não seria a parte de iterar pela coleção, me parece que o código nem sequer chega lá.
Pelo que eu to vendo tu anda chamando o construtor da classe Agencia demasiadamente via recursão.

# public class Agencia {  
#     int numAgencia;   
#     ArrayList<ContaPessoa> c = new ArrayList<ContaPessoa>();  
#     Agencia agn = new Agencia();  //Eis aqui sua "cagada" recursiva
#       
#       
#      public Agencia() {  
#           
#           
#      }
# }

Inté.

vlw velho deu certo aki
abraco