Array bidimensional - Problemas

Olá pessoal,
Estou tentando criar um jogo (batalha naval) e neste momento quero criar um array bidimensional com 6 linhas e seis colunas e popular os espaçõs com o valor 0 inicialmente. Este array será meu tabuleiro.
Para isso eu tenho uma classe tabuleiro e nela o método populatabuleiro() é responsável por popular este array.
Segue abaixo parte da minha classe tabuleiro com o método populatabuleiro()

package br.com.batalhanaval;

public class Tabuleiro {

	int linhas = 5;

	int colunas = 5;

	int qtdJogadas = 0;

	boolean haJogo = true;

	int[][] posicoesDoTabuleiro = new int[linhas][colunas];

	public int[][] populaTabuleiro() {
		int[][] posicoesDoTabuleiro = new int[linhas][colunas];

		System.out.println(posicoesDoTabuleiro.length - 1);

		int j = 0;
		for (int i = 0; i < posicoesDoTabuleiro.length - 1; i++) {

			while (j < posicoesDoTabuleiro.length) {
				posicoesDoTabuleiro[i][j] = 0;
				System.out.println("L C: " + i + ", " + j + " Valor "
						+ posicoesDoTabuleiro[i][j]);
				j++;
			}
			System.out.println(i + "," + j);

			i++;
		}
		return posicoesDoTabuleiro;

}

O que está bugando é que parece que o valor de i não está sendo incrementado pois o resultado no console está sendo desastroso.
Segue abaixo:

Onde é que eu estou errando?
Vocês entenderam o que eu estou querendo fazer?
Não reparem o fato de eu estar utilizando um for e dentro dele um while, mas é que ja tentei com um for dentro do outro, um while dentro do outro e nada.
É correto utilizar um for dentro do outro para popular arrays bidimensionais?

Desde já agradeço.

       int[][] b = new int[5][5];
         
       for (int i=0; i <= b.length -1; i++){
         
          for (int x=0; x<=b.length -1; x++){
              b[i][x] = 0;
            
             System.out.println(b[i][x]);
          }
       }

± isso vc ker fazer?

System.out.println("Valor da posição " + i + " , " + x + " é: " + b[i][x]);

É isso mesmo. Fiz uma classe simples para testar e dá o mesmo erro.

public class TestaArray {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		
		int[][] matriz = new int[5][5];
		for (int i = 0; i < matriz.length; i++) {
			for (int j = 0; j < matriz.length; j++) {
				matriz[i][j] = 0;
				System.out.println("Linha " + i + " Coluna " + j);
			}
			
		}

	}

}

Isto quer dizer que há duas chamadas que são mutuamente recursivas (Tabuleiro.populaTabuleiro e o construtor de IniciaJogo).
Veja como quebrar esta recursividade indevida.

Valeu pessoal, estava fazendo besteira mesmo como o tingol falou.
Agora está certinho.
Valeu você tb juruna

Qualquer coisa eu grito.
[]'s