Bom dia galera, eu sei que essa dúvida é ridícula, mas até hoje não entendi por que devemos usar getters and setters, qual é a função disso?
A função deles é para encapsular o atributo, por exemplo um atributo chamado “idade”.
Você deve concordar que não existe uma idade negativa como por exemplo -18 anos.
Usando eles é possível garantir que ninguém vai colocar uma idade negativa.
Por exemplo no método get poderia colocar uma comparação
if (idade < 0) { // Isso garante que se colocarem uma idade negativa, ai por padrão ele vai colocar a idade 18
System.out.println(18);
} else {
this.idade = idade;
System.out.println(idade);
}
Então ele serve pra como um filtro certo?
Você pode me dar dois exemplos de uma classe usando get e set pra pegar dados, ou enviar dados da outra?
Por exemplo TelaLogin (get) TelaRegistro
TelaAdd (set) TelaPrincipal
Isso mesmo
[code]package poo15_04_13;
public class Pessoa {
private String nome;
private String cidade;
public void setCidade(String cidade) {
this.cidade = cidade;
}
public String getCidade() {
if(cidade == null) {
cidade = "Colocar qualquer cidade padrao";
}
return cidade;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
}[/code]
[code]package poo15_04_13;
public class CriaPessoa {
public static void main(String[] args) {
Pessoa p = new Pessoa();
p.setNome("Zequi");
p.setCidade("Floripa");
System.out.println(p.getNome());
System.out.println(p.getCidade());
}
Só complementando. Um das boas práticas de programação em java, no caso, é criar seus atributos sempre private, assim uma classe não terá acesso direto a essa sua classe, evitando assim violação como o cara mencionou ai no tópico. E para outras classes terem acesso a esses atributos declarados com privados, você precisa fazer o getter para métodos de outras classes terem acesso, e o setter para, para métodos de outras classes modificarem esses atributos de acordo com regras definidas por vc, evitando assim colocar um valor inadequado, como falou o cara ai no post. Se tiver errado, alguém corrija, por favor.
Só uma última coisa, nesse caso vocÊ enviou nomes pra a classe pessoa que serviu como um “filtro” definindo o valor da variável nome, e o get serviu pra pegar o valor atual da variável nome que estaria presente na classe pessoa né?
Isso mesmo.
A função do Get e Setter’s é manipular os atributos privado de um objeto, daqueles usuários mal-intecionados ou enrolados.