Erro ao buscar/encontrar atributo de um objeto em um vetor. #java

Olá pessoal!

Neste programa consigo inserir um objeto tranquilamente em meu vetor com o método (adder), porém após adiciona-lo não consigo buscar/encontrar a String “placa” que o usuário digitou… o programa sempre mostra “Veiculo não encontrado no sistema!”.

O problema está no método pesquisador (searcher).

Se puderem ajudar ficarei agradecido.

Classe: Locadora

import javax.swing.*;
public class Locadora{
    public static TCarro[] vetor=new TCarro[50];
    public static void main(String[]args){
        for(int i=0;i<vetor.length;i++){
            vetor[i]=new TCarro();
        }
        menu();
    }
    public static void menu(){
        switch(Integer.parseInt(JOptionPane.showInputDialog("#MENU\n1.INCLUIR\n2.PESQUISAR\n"))){
            case 1:
                adder();
            case 2:
                searcher();
            default:
                break;
        }
        menu();
    }
    public static void adder(){
        for(int i=0;i<vetor.length;i++){
            vetor[i].setPlaca(JOptionPane.showInputDialog("Insira a placa:"));
            vetor[i].setCnh(Integer.parseInt(JOptionPane.showInputDialog("Insira a CNH:")));
            vetor[i].setMarca(JOptionPane.showInputDialog("Insira a marca:"));
            vetor[i].setModelo(JOptionPane.showInputDialog("Insira o modelo:"));
            vetor[i].setLocal(JOptionPane.showInputDialog("Insira locatario:"));
            vetor[i].setSit("DISPONIVEL");
            switch(Integer.parseInt(JOptionPane.showInputDialog("#DESEJA ADICIONAR MAIS?\n1.SIM\n2.NAO\n"))){
                case 2:
                    menu();
                default:
                    break;
            }
        }
    }
    public static void searcher(){
        String placa=JOptionPane.showInputDialog("Insira a placa:");
        for(int i=0;i<vetor.length;i++){
            if(placa.equals(vetor[i].getPlaca())){
                JOptionPane.showMessageDialog(null,"#DETALHES DO CARRO"+
                                            "\nPLACA:"+vetor[i].getPlaca()+
                                            "\nCNH:"+vetor[i].getCnh()+
                                            "\nMARCA:"+vetor[i].getMarca()+
                                            "\nMODELO:"+vetor[i].getModelo()+
                                            "\nLOCATARIO:"+vetor[i].getLocal()+
                                            "\nSITUACAO:"+vetor[i].getSit()+"\n");
            }
        }
        JOptionPane.showMessageDialog(null,"Veiculo não encontrado no sistema!\n");
    }
}

Classe: TCarro

public class TCarro{
    String placa;
    int CNH;
    String marca;
    String modelo;
    String locatario;
    String situacao;

    public void setPlaca(String placa){
        placa=this.placa;
    }
    public String getPlaca(){
        return placa;
    }
    public void setCnh(int CNH){
        CNH=this.CNH;
    }
    public int getCnh(){
        return CNH;
    }
    public void setMarca(String marca){
        marca=this.marca;
    }
    public String getMarca(){
        return marca;
    }
    public void setModelo(String modelo){
        modelo=this.modelo;
    }
    public String getModelo(){
        return modelo;
    }
    public void setLocal(String local){
        locatario=local;
    }
    public String getLocal(){
        return locatario;
    }
    public void setSit(String sit){
        situacao=sit;
    }
    public String getSit(){
        return situacao;
    }
}

Qual a necessidade do “T” na frente do nome da classe?

Os métodos set de sua classe TCarro estão errados, você está atribuindo o atributo ao parâmetro, tem que ser o contrário, assim:

public void setPlaca(String placa){
    this.placa = placa;
}

public void setCnh(int CNH){
    this.CNH = CNH;
}
public void setMarca(String marca){
    this.marca = marca;
}

public void setModelo(String modelo){
    this.modelo = modelo;
}