O this em sistema java

Ola boa noite entao estava estudando uns codigos feito pelo professor e acabei encontrando um this e queria entender o porque dele ele esta na parte em categoriaDAO " this.con = Conexao.conectar();"
package controller;
//DAO = Data Access Object
//O objeto de acesso a dados é uma classe que especifica

import java.util.List;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import model.Categoria;
import java.util.ArrayList;

//todas as operacoes que podem ser realizadas com a
//respectiva tabela
public class CategoriaDAO {
//estabelecer conexao com o banco
private final Connection con;

//enviar comando sql
private PreparedStatement cmd;

public CategoriaDAO(){
    this.con = Conexao.conectar();
}

/*
INSERIR 
*/
public int inserir(Categoria obj){
    try {
        String SQL = "insert into tb_categoria "
                   + "(nome,fg_ativo) values (?,?)";
        
        cmd = con.prepareStatement(SQL);
        cmd.setString(1, obj.getNome());
        cmd.setInt(2,obj.getFg_ativo());
        
        if (cmd.executeUpdate() > 0){
            //operação realizada com sucesso
            return 1;   //OK
        }else{
            return -1;  // ERRO
        }
        
    } catch (SQLException e) {
        System.err.println("ERRO: " + e.getMessage());
        return -1;
    }finally{
        Conexao.desconectar(con);
    }
}

   //
// LISTAR
// Retorna todos os dados da tabela
public List<Categoria> listar(){
    try {
        String SQL = "select * from tb_categoria";
        cmd = con.prepareStatement(SQL);
        
        //executar a consulta
        List<Categoria> lista = new ArrayList<>();
        ResultSet rs = cmd.executeQuery();
        while (rs.next()){
            Categoria cat = new Categoria();
            cat.setId(rs.getInt("id"));
            cat.setNome(rs.getString("nome"));
            cat.setFg_ativo(rs.getInt("fg_ativo"));
            lista.add(cat);
        }
        return lista;
    } catch (SQLException e) {
        System.err.println("ERRO: " + e.getMessage());
        return null;
    }finally{
        Conexao.desconectar(con);
    }
}

}

É uma referência para a própria classe!

Por exemplo:

private class Test {

    private int number;
    private String description;

    public Test(int number) {
        this.number = number; // A variável 'number' da própria classe recebe o valor vindo pelo parâmetro de nome 'number'
        this.description = "O número recebido por parâmetro é: " + number; // Referenciando a variável 'description' da própria classe
    }

}
1 curtida