A palavra-chave this em Java é uma referência ao objeto atual dentro de uma instância de classe. É comumente usada para diferenciar entre variáveis de instância e parâmetros de métodos ou construtores, bem como para invocar outros construtores na mesma classe.
Usos Comuns da Palavra-chave this
1.Referência a Variáveis de Instância: Quando os nomes das variáveis de instância e dos parâmetros de métodos ou construtores são iguais, você usa this
para distinguir a variável de instância do parâmetro.
public class Pessoa {
private String nome;
private int idade;
public Pessoa(String nome, int idade) {
this.nome = nome; // Referência à variável de instância
this.idade = idade; // Referência à variável de instância
}
public void setNome(String nome) {
this.nome = nome; // Referência à variável de instância
}
public String getNome() {
return this.nome; // Referência à variável de instância
}
}
2.Invocar Outros Construtores: Você pode usar this
para chamar outro construtor na mesma classe. Isso é conhecido como chaining de construtores.
public class Pessoa {
private String nome;
private int idade;
public Pessoa(String nome) {
this(nome, 0); // Chama o construtor Pessoa(String, int)
}
public Pessoa(String nome, int idade) {
this.nome = nome;
this.idade = idade;
}
}
3.Referência ao Objeto Atual: this
é usado para referenciar o próprio objeto atual dentro de métodos. Isso é útil em métodos que precisam retornar a instância atual do objeto ou passar a instância atual como argumento para outros métodos.
public class Pessoa {
private String nome;
public Pessoa(String nome) {
this.nome = nome;
}
public Pessoa getSelf() {
return this; // Retorna a instância atual do objeto
}
public void imprimirNome() {
System.out.println("Nome: " + this.nome);
}
}
4.Uso em Métodos Internos e Classes Aninhadas: this
também pode ser usado em classes internas e aninhadas para referenciar a instância da classe externa.
public class Externo {
private String mensagem = "Olá";
class Interno {
public void mostrarMensagem() {
System.out.println(this.mensagem); // Acessa a variável da classe interna
System.out.println(Externo.this.mensagem); // Acessa a variável da classe externa
}
}
}
Posts recentes
Exemplos
Exemplo 1: Distinguir Variáveis
public class Carro {
private String modelo;
private int ano;
public Carro(String modelo, int ano) {
this.modelo = modelo; // "this.modelo" refere-se à variável de instância
this.ano = ano; // "this.ano" refere-se à variável de instância
}
public void atualizarAno(int ano) {
this.ano = ano; // "this.ano" refere-se à variável de instância
}
}
Exemplo 2: Chaining de Construtores
public class Livro {
private String titulo;
private String autor;
public Livro(String titulo) {
this(titulo, "Desconhecido"); // Chama o construtor Livro(String, String)
}
public Livro(String titulo, String autor) {
this.titulo = titulo;
this.autor = autor;
}
}
Exemplo 3: Retornar o Objeto Atual
public class Conta {
private double saldo;
public Conta(double saldo) {
this.saldo = saldo;
}
public Conta depositar(double valor) {
this.saldo += valor;
return this; // Retorna a instância atual
}
public double getSaldo() {
return this.saldo;
}
}
No exemplo acima, o método depositar
retorna a instância atual da Conta
, permitindo chamadas encadeadas (method chaining).
Resumo
this
é uma referência ao objeto atual dentro de uma classe.- É usado para acessar variáveis de instância e métodos da classe atual.
- Ajuda a distinguir entre variáveis de instância e parâmetros com o mesmo nome.
- Facilita a invocação de outros construtores na mesma classe e pode ser utilizado para retornar a instância atual de um objeto.
O uso adequado de this
pode tornar o código mais claro e evitar confusões ao lidar com variáveis e métodos de instância.