Classe aeroportuario ajuda instanciação

Pessoal como faço pra implementar : Se voo [i][j] estiver instanciado como (!=null) é porque existe um voo que vai do aeroporto [i] para aeroporto [j].

Segue o que fiz até agora:

public class ControleAeroportuário {
	int aeroporto [];
	int m, n;
	int[][] voo;
	
	public ControleAeroportuário(int linhas, int colunas) {
		this.m = linhas;
		this.n = colunas;
		voo = new int[linhas][colunas];
	}
	
	public void preencheMatriz(int[][] voo) {
		this.voo = new int[this.m][this.n];
		
		for (int i = 0; i < aeroporto.length-1; i++) {
			for (int j = 0; j < aeroporto.length-1; j++) {
				this.voo[i][j] = voo[i][j];
			}
		}
	}
}

No seu código, como o voo é uma matriz de int, você apenas conseguirá verificar se voo[i][j] é diferente de 0 (zero).

Para fazer do jeito que está querendo, você terá que criar uma classe que representa o Voo e fazer a matriz assim:

Voo[][] voos;

Então mais é isso mesmo, (!=null) : isso aí é diferente de nulo. Bom acho que é isso que entendi…

Vou tentar te mostrar a diferença entre usar: int[][] e Voo[][]:

Usando int[][]:

// para instanciar
int[][] voos = new int[10][10];

// para incluir
voos[i][j] = 1;

// para verificar se possui valor
if(voos[i][j] != 0) {
    // possui um voo
}

Usando Voo[][]:

class Voo {
    // atributos e métodos da classe Voo
}

// para instanciar
Voo[][] voos = new Voo[10][10];

// para incluir
voos[i][j] = new Voo();

// para verificar se possui valor
if(voos[i][j] != null) {
    // possui um voo
}

Com int[][] não dá para verificar se é direrente de null, pois o valor default para tipos inteiros primitivo é zero.