[Resolvido] Dúvida com Getters and setters

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());
}

}[/code]
http://www.guj.com.br/search?cx=partner-pub-9448585618971060%3A4001950301&cof=FORID%3A10&ie=UTF-8&q=get+e+set&x=-1012&y=-124&siteurl=www.guj.com.br%2F&ref=www.guj.com.br%2Fjava%2F300644-&ss=1450j292954j9

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.