Galera, estava estudando a partir de uma vídeo aula e travei nesta parte. Não entendi muito bem o que seria cada um desses métodos e qual a sua necessidade. Alguém teria a boa vontade de me explicar por favor?? Já fiz uma busca no forum, mas mesmo assim não ficou claro. Desde já agradeço, obrigado.
Dúvidas Métodos Acessores, Modificares, Contrutores e This
7 Respostas
Modificadores:
padrão - visível no mesmo pacote
public - visível à qualquer classe
protected - visível ao mesmo pacote e à herança
private - visível somente na mesma classe
Construtores:
Métodos especiais para inicializar um objeto
Exemplo:
public class Exemplo {
private String nome;
private char sexo;
private int idade;
public Exemplo() {
}
public Exemplo(String nome, char sexo, int idade) {
this.nome = nome; //o this referencia ao objeto
this.sexo = sexo;
this.idade = idade;
}
}
Certo, mas qual a diferença de escrever
public Exemplo(String nome, char sexo, int idade) {
this.nome = nome; //o this referencia ao objeto
this.sexo = sexo;
this.idade = idade;
}
e
public Exemplo(String nome, char sexo, int idade) {
nome = nome; //o this referencia ao objeto
sexo = sexo;
idade = idade;
}
Obrigado!!
Certo, mas qual a diferença de escreverpublic Exemplo(String nome, char sexo, int idade) { this.nome = nome; //o this referencia ao objeto this.sexo = sexo; this.idade = idade; }e
public Exemplo(String nome, char sexo, int idade) { nome = nome; //o this referencia ao objeto sexo = sexo; idade = idade; }Obrigado!!
Pelo que eu entendi, nesse caso ocorre uma redundância quando usado this. Nesses exemplos, usar ou não, dá na mesma. Não existe diferença.
Espere alguém mais esperiente responder, pois posso estar errado.
Existe diferença sim, se você fizer isto:
public class PortalJava {
String nome;
int idade;
}
public PortalJava(String nome, int idade) {
nome = nome;
idade = idade;
}
Método main:
PortalJava pj = new PortalJava("Portal Java", 5);
System.out.println("Nome: " + pj.nome);
System.out.println("Idade: " + pj.idade);
Resultado:
Nome: null
Idade: 0
A função da palavra reservada this é referenciar o próprio objeto, então se utilizá-lo no exemplo que citei o resultado será com os valores passados para o construtor.
Complementando as palavras de Carneiro…
:arrow: thundercas,
para não ocorrer problemas deste tipo, use this. explícitamente, assim estará fazendo referência ao objeto que está executando o código atual. Com isso seu código ficar mais fácil de ser lido.
public Exemplo(String nome, char sexo, int idade) {
this.nome = nome; //o this referencia ao objeto
this.sexo = sexo;
this.idade = idade;
}
Espero ter ajudado!
Bons estudos! 
Eu fiz o seguinte código:
import javax.swing.*;
public class AgendaEletronica {
public static void main (String args[]) {
String nome;
String endereco;
String email;
String telefone;
}
public AgendaEletronica (String nome, String endereco, String email, String telefone) {
this.nome = nome;
this.endereco = endereco;
this.email = email;
this.telefone = telefone;
}
}
e o sistema me gerou um erro…“Cannot resolve symbol nome/endereco/email/telefone”.
Se eu tirar o “this.” funciona corretamente. Agora eu não entendi nada = / …
É porque você declarou as variáveis dentro do método main, então eles só são visíveis lá.
Se tirar o this, você atribui a variável (local - o parâmetro) a si mesma, o que além de ser inútil, não funcionará como você espera.
Declare as variáveis como atributos (fora de qualquer método).