Poo em Java

Modifique seu código para representar esse novo cenário, conforme instruções a seguir: a) A associação deve ser implementada com um array convencional; b) Acrescente um método “void adicionar (Carro carro)” à classe que jugar apropriado, adicionando o carro ao array; c) Acrescente um método “void remover (Carro carro)” à classe que jugar apropriado, retirando o carro do array; d) Acrescente um método sobrecarregado “void remover (String pla)” à classe que jugar apropriado, retirando o carro com aquela placa do array; e) Acrescente um método “Carro pesquisar (String pla)” à classe que jugar apropriado, o qual vai procurar o carro com aquela placa no array e retorná-lo ao encontrar, retornando nulo caso contrário. f) Acrescente um método “void listar ()” à classe que jugar apropriado, o qual vai imprimir todos os dados de todos carros do array.

public class Carro {
////Encapsulando
private String modelo;
private String placa;
private int ano;
private double valor;

public void setModelo(String m) {
	modelo=m;
}
public String getModelo() {
	return modelo;
}
public void setPlaca(String p) {
	placa=p;
}
public String getPlaca() {
	return placa;
}
public void setAno(int a) {
	ano=a;
}
public int getAno(){
	return ano;
}
public void setValor(double v) {
	valor=v;
}
public double getValor() {
	return valor;
}
Carro(){
	
}
Carro(String mod, String pla){
	modelo=mod;
	placa=pla;
}
Carro(String mod, String pla, int a, int val){
	modelo=mod;
	placa=pla;
	ano=a;
	valor=val;
}

public void aplicarDesconto(double porcentagem ) {
	 valor = valor * (100-porcentagem)/100; 	
	 }	

void exibir() {
	System.out.println("Modelo: " +modelo );
	System.out.println("Placa: " + placa);
	System.out.println("Ano: " +ano);
	System.out.println("Valor: " + valor);
}

}

public class Pessoa {
private String nome;
private String endereco;
private String telefone;
private int idade;

int numCarros=0; 
private Carro[] carros = new Carro[5];

public void adicionarCarro(Carro c) {
	carros[numCarros]=c;
	numCarros++;
}
public void removerCarro(String c){
	  for(int i=0; i < carros.length; i++){
		  
	      if(carros[i].getModelo()==c){
	    	  carros[i]=null;
	    	  return;
	      }
	    }
	      return;
	  }
public void removerPlaca(String pla){
	  for(int i=0; i < carros.length; i++){
		  
	      if(carros[i].getPlaca()==pla){
	    	  carros[i]=null;
	    	  return;
	      }
	    }
	      return;
	  }

	
			
public  void setNome (String nom) {
	nome=nom;
}
public String getNome() {
	return nome;
	
}

public void setEndereco(String e) {
	endereco=e;
}
public String getEndereco() {
	return endereco;
}

public void setTelefone(String t) {
	telefone=t;
}
public String getTelefone() {
	return telefone;
}

public void setIdade(int id) {
	idade=id;
}
public int getIdade() {
	return idade;
}

Pessoa(){
	
}

Pessoa(String n, int i){
	nome=n;
	idade=i;
	
}
Pessoa(String n, String end, String tel, int i){
	nome=n;
	endereco=end;
	telefone=tel;
	idade=i;
}

void mostrar() {
	System.out.println("Nome: " + nome);
	System.out.println("Endereço: " + endereco);
	System.out.println("Telefone: " + telefone);
	System.out.println("Idade: " + idade);
	
		

  }
}

Não consigo fazer o pesquisar nem o listar. Gostaria de saber também se os demais itens estão corretos

private ArrayList carros = new ArrayList<>();

public void adicionarCarro(Carro carro) {
carros.add(carro);
}

String se comprara com equals ex:
public void removerPlaca(String pla){
for(int i=0; i < carros.size(); i++){
if(carros.get(i).getPlaca().equals(pla)){
carros.remove(i);

public void mostrar(Carro carro) {

}

para listar todos use o for e chame o mostrar.

Essa questão tem que usar só o Array. Não pode usar o ArrayList