Estás declarando un atributo int [][] mapa; en la clase Mapa, pero estás rellenando en el constructor una variable local del constructor ya que la declaras otra vez
Código Java:
Ver originalpublic Mapa()
{
int[][] mapa={{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},{0,2,1,1,1,0,1,1,1,1,1,1,1,1,0,1,1,1,2,0},{0,1,0,0,1,0,1,0,0,0,0,0,0,1,0,1,0,0,1,0},{0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0},{0,1,0,1,0,0,1,0,0,3,3,0,0,1,0,0,1,0,1,0},{0,1,1,1,1,1,1,0,3,3,3,3,0,1,1,1,1,1,1,0},{0,1,0,1,0,0,1,0,0,0,0,0,0,1,0,0,1,0,1,0},{0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0},{0,1,0,0,1,0,1,0,0,0,0,0,0,1,0,1,0,0,1,0},{0,2,1,1,1,0,1,1,1,1,1,1,1,1,0,1,1,1,2,0},{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}};
}
cuando el constructor termina, ese int [][] mapa que declaras dentro desaparece y te queda el atributo int [][] mapa que sigue sin rellenar. Dicho de otra forma, tienes dos mapa distintos
se bueno.