JAVA POO- Chamar função de uma classe

Boas pessoal,

Então estou com o seguinte problema , criei uma matriz30x60 na qual irei gerar um numero em uma posição aleatória,até ai tudo bem.
Porém quando peguei a função que gera o numero e coloquei na classe , estou tendo problemas para chamar ela.
Meu código esta assim:
Omiti o codigo de preenchimento da matriz pra ficar menor

	int [][] matrix = new int[30][60];
Caminhao caminhoes = new Caminhao();
	Carro carros = new Carro();
	Moto motos = new Moto();
	
	
	
	
	//Utilizando as funções com objetos
	
	carros.gerarCarro();
	motos.gerarMoto();
	caminhoes.gerarCaminhao();
	

	//Código para printar a matriz após cada veiculo adicionado
	
		for(int x = 0; x < matrix.length; x++)
	{
		for (int i = 0; i < matrix[x].length; i++) 
		{
		  	System.out.print(matrix[x][i]);
		}
		System.out.println();
	}

E o codigo na Classe está assim:

    import java.util.Random;
public class Carro{

   //Método para gerar um Carro em um lugar aleatório da matriz
  	public void gerarCarro(){
			  Random r= new Random();
			  int [][] matrix = new int[30][60];
			  int a =r.nextInt(29);
        int b =r.nextInt(59);
			  if(matrix[a][b] == 0 && matrix[a][b] != 2 && matrix[a][b]!=1 && matrix[a][b]!=4 && matrix[a][b]!=5){
			    matrix[a][b]=3;
			  
		}
		
		}
}

@Caioww99 Qual problema exatamente está tento? :face_with_raised_eyebrow:

Pelo que estou vendo a função dentro do seu objeto pode até fazer algo, mas não passa nada para a matriz que você está manipulando. Você tem que passar ela para o objeto ou retornar um valor.

 public void gerarCarro(int[][] matrix){
    //código do carro
 }

 public void gerarMoto(int[][] matrix){
     //código da moto
 }

 public void gerarCaminhao(int[][] matrix){
      //código do caminhão
 }

Explica um pouco melhor esse problema que está acontecendo

pelo que eu vi no seu código toda hora você instancia uma nova matriz e também o método gera carro só é gerado uma vez sem ter o for dentro ou fora, assim não terá valor, você pode fazer igual exemplo abaixo:

/*Dessa forma você vai ter valores aleatórios em cada posição da matriz, se já existisse valor ou não ela da novo valores*/
public void gerarCarro(int[][] matrix){
Random r= new Random();
for(int i=0;i<matriz.lenght;i++){
   for(nt j=0;i<matriz[i].lenght;j++){
          matrix[a][b]=r.nextInt(29);
}
}