[RESOLVIDO] Dúvida para chamar metódo e melhorar a OO

E aí moçada!
Eu sei que o problema deve ser fácil mais eu travei.
Estou fazendo um exercício onde não tenho dúvida alguma a dúvida ficou em um procedimento extra que tentei fazer sem o exercício pedir. Eu vou explicar:
1- Primeiro criei uma classe Conta

[code]
public class Conta {
/** ATRIBUTOS **/
double saldo;
double limite;
String titular;

/** METÓDO **/
void imprimeArray(int[] array) {
	// primeira forma de resolver o metódo com length
	for (int i = 0; i < array.length; i++) {
		System.out.println(array[i]);
	}
	// segunda forma de resolver o metódo sem length "Java 5.0"
	for (int x :array){
		System.out.println(x);
	}
}

}[/code]
Eu sei o que um metódo imprimeArray está fazendo dentro de uma classe conta, não têm nada a ver. Eu bem que queria o metódo imprimeArray em uma classe separada mas só consegui chama-lo quando eu coloco junto com os atributos da Conta.

2- Criei uma classe com main para usá-la estou fazendo alguns testes com arrays;

[code]public static void main(String[] args) {
Conta [] minhasContasA = new Conta [12];
minhasContasA [1] = new Conta();
minhasContasA [1].limite = 200;
minhasContasA [1].titular = “Fulano”;

	System.out.println(minhasContasA[1].limite);
}

}[/code]
Eu sei que a OO ficou muito ruim minhas dúvidas são:
Como eu faço para usar o metódo imprimeArray dentro da classe principal onde eu criei as arrays para substituir aquele system.out.print?
Eu posso separar tudo isso em três classes para ficar com orientação melhor?

Dicas:

  1. Eu sei que você precisa de um monte de métodos que não se encaixam em nenhuma classe porque são utilitários. Eu sempre, em meus programas, crio uma classe “Util” e ponho dentro dela todos os métodos estáticos que posso usar de um programa para outro - um deles é a impressão de um array, conforme você deve ter entendido. Para ficar mais organizado, é sempre mais bonitinho escrever um comentário javadoc, até para você não se perder depois. Explique para que serve e como se usa.
public class Util {
    /**
     * Imprime na saída-padrão um array de inteiros, um int por linha. 
     * @param array O array de int a ser impresso.
     */
    public static void imprimirArray (int[] array) {
        for (int x : array) {
            System.out.println (x);
        }
    }
}

Então você usa esse método nas suas classes. Por exemplo,

....
public static void main (String[] args) {
    int arr[] = { 3, 1, 4, 1, 5 };
    Util.imprimirArray (arr);
}
...

Essa classe util é organizada isso muito bom já resolveu o meu problema com a orientação a objetos. Só que ainda estou com problemas para imprimir array a do seu exemplo funcionou mas já a minha array do tipo conta… Meu código ficou assim em resumo:

public class Util { static void imprimeArray(Conta[] array) { for (Conta x : array) { System.out.println(x); } } }

public class Conta { double saldo; double limite; String titular; }

[code]
public class CriandoArrays {
public static void main(String[] args) {
Conta [] minhasContasA = new Conta [12];
minhasContasA [1] = new Conta();
minhasContasA [1].limite = 200;

	minhasContasA [2] = new Conta();
	minhasContasA [2].limite = 3000;
	minhasContasA [2].titular = "fulano";
}

}[/code]
Eu consigo chamar o Util dentro da classe CriandoArrays sem problema porque o metódo está statico, mas na hora de colocar o agumento ele não aceita. Util.imprimeArray(array); O argumento array é minhasContasA Certo? Só que posição ele vai imprimir a [1] e [2] ou tenho que escolher uma das duas?
O pior de tudo é que o eclipse dá sugestões para mudar array para minhasContasA dentro da classe Util e essa não seria minha intenção porque quero deixar generalizado se eu fosse criar uma nova array com nome minhasContasB eu teria que criar outro metódo só para as minhasContasB veja como ficou:

public class Util { static void imprimeArray(Conta[] minhasContasA) { for (Conta x : minhasContasA) { System.out.println(x); } } }
Finalmente cheguei na raiz do problema eu não consegui explicar isso no primeiro post.
E o que sai no console “falha total” não aparece os resultados:

testeDeArraysPacote.Conta@42e816
testeDeArraysPacote.Conta@9304b1
testeDeArraysPacote.Conta@190d11
testeDeArraysPacote.Conta@a90653
null
null
null

Estes valores que estão aparecendo são o endereço de memoria dos seus objetos “conta” que estão dentro do array.

[quote]testeDeArraysPacote.Conta@42e816
testeDeArraysPacote.Conta@9304b1
testeDeArraysPacote.Conta@190d11
testeDeArraysPacote.Conta@a90653 [/quote]
Para você conseguir imprimir como você quer, é necessário sobrescrever o metodo toString(), informando como você quer a visualização da impressão de seu objeto Conta.

Segue abaixo sua classe conta com esta alteração.

[code]class Conta {
private double saldo;
private double limite;
private String titular;

public double getSaldo() {
	return saldo;
}

public void setSaldo(double saldo) {
	this.saldo = saldo;
}

public double getLimite() {
	return limite;
}

public void setLimite(double limite) {
	this.limite = limite;
}

public String getTitular() {
	return titular;
}

public void setTitular(String titular) {
	this.titular = titular;
}

@Override
public String toString() {
	return String.format("Titular: %s | Limite: %f | Saldo: %f", titular,
			limite, saldo);
}

}[/code]
OBS: Deixei seus atributos como “private”, e utilizei metodos de acesso a seus atributos (gets, sets).

Att

Astork fiz essa modificação na classe Conta exatamente como no seu exemplo eu posso fazer a inclusão dos dados através dos metódos get e set sem acessar diretamente o atributo isso é legal mas minha dúvida seria em usar a classe Util para imprimir a array inteira e não trazer os valores dos atributos individualmente

Mas é isso que tá fazendo… imprimindo o array inteiro, mostrando todos os atributos de cada objeto que existe nela…

Pessoal fiz alguns testes com toString tanto sozinho como combinado com a classe Util imprime todas as informações da array como no exemplo de Astork.
Um outro post que me ajudou bastante foi http://www.guj.com.br/posts/list/49820.java
Desculpa a mancada de não fazer todos os testes obrigado a todos pelas respostas. Abs!