Java -Como fazer objeto não sair da Matriz

Galera ,

Queria saber que por exemplo , uma matriz 5x5 , com 1 nas bordas e 0 na parte de dentro ,como eu colocaria as condições pra quando um numero 3 por exemplo se ele fosse até o final da matriz ,ele voltaria para o começo da linha ou da coluna.

Por exemplo : m[29][59] ai no proximo m[0][59]

Segue codigo de movimento aleatório de um numero 3 na matriz:

    public void moverVeiculo(int matrix[][],int veiculo,int velocidade) {
		  
        for (int l = 0; l < matrix.length; l++) {
            for (int c = 0; c < matrix[l].length; c++) {
                int numero = matrix[l][c];

                if (numero == veiculo) {
                    Random random = new Random();
                    int direcao = random.nextInt(4);
                    matrix[l][c] = 0;

                    switch (direcao) {
                        // move para cima
                        case 0:
                            if ((l - velocidade) > 0) {
                                l = l - velocidade;
                            }
                           

                            break;
                        //move para baixo
                        case 1:
                            if ((l + velocidade) < matrix[l].length) {
                                l = l + velocidade;
                            
                            }

                            break;
                        //move para direita
                        case 2:
                            if ((c - velocidade) > 0) {
                                c = c - velocidade;
                           
                              
                            }
                              
                            

                            break;
                        //move para esquerda
                        case 3:
                            if ((c + velocidade) < matrix[c].length){
                                c = c + velocidade;
                            }
                            

                            break;
                        
                    }
                    
                    matrix[l][c]=numero;

                    
            
                      
                    }
                }
            }
}
if (l == 29) {
    l = 0;
}

Entendi , estou com problema de estouro de vetor , não sei porque.

Se você definir uma matriz 5x5 o vetor armazena os valores nas posições começando do 0 e terminando no 4. por isso sempre antes de inserir tem que verificar se a posição não é igual ou maior que 5.