J� que n�o tive uma resposta satisfat�ria a minha duvida, fiquei pensando a respeito disso e chequei a uma conclus�o intuitiva.
Estou apenas come�ando a estudar Java e gostaria que alguem me corrigisse se estiver errado ou confirmar se estou certo.
 
Quando declaro String[][] z[] o Java entende que eu quero um " array de 'array de array' ", portanto para z ele aloca mem�ria para referenciar um String[][][], e quando eu utilizo o new para inicializar z eu ja estou trabalhando com uma refer�ncia para String[][][], portanto devo utilizar os cochetes nessa ordem.
 
 
 
-----Mensagem Original-----
 
Estava respondendo a uma d�vida da Rita Fernandes quando me deparei com algo inesperado!
 
O c�digo abaixo funciona, mas aqui fica uma d�vida minha, talv�z alguem possa responder:
quando eu declaro um array escrevo
String z[] - Tipo refer�ncia[];  e inicializo com - new String[4]  -  Tipo[tamanho];
 
No c�digo eu quero criar um array z[4][3][3], portanto declaro
String[][] z[] - Tipo(String[][]) refer�ncia[]; e no meu ponto de vista deveria inicializar com - new String[][][4], ou pelo menos
String[3][3][4], para manter o padr�o  Tipo[tamanho] - mas o compilador aceita apenas String[4][3][3], oque seria Tipo[tamanho][][]
 
Isso n�o foge a sintaxe do Java?
 
 
import javax.swing.*;
 
public class Array3 {
 
 public static void main (String arg[]){
  //declara��o de vari�veis
  String saida = "";
  int k,i,j;
 
  String[][] z[] = new String[4][3][3];
 
  //atribuir valores
  for (k=0; k<4; k++){
   for (i=0; i<3; i++){
    for (j=0; j<3; j++){
     z[k][i][j] = "["+k+"]["+i+"]["+j+"]";}}}
 
  for (i=0; i<3; i++){
   for (k=0; k<4; k++){
    for (j=0; j<3; j++){
     saida += z[k][i][j]+",";}
    saida += "  ";}
   saida += "\n";}
 
  //saida na tela
  JOptionPane.showMessageDialog(null,saida);
  System.exit(0);
 }
}

Responder a