Get / set

fala, galera! :cool:

sera que alguem poderia me dar um exemplo simples de como usar get / set em um programinha simples e me dizer para que servem exatamente? eles sao metodos? valeu!!! :wink:

Olá billy,

get é um método usado quando se quer obter o valor de algum atributo.

set são métodos usado quando se quer alterar o valor de algum atributo da classe. Só faz sentido sua utilização quando esses atributos estão encapsulados, ou seja, com bloqueio de acesso por outras classes.
Estes métodos são muito usado em classes de acesso à dados (beans).

Uma exempo de uso de get / set:

public class Cliente {
 
 //atributos da classe Cliente. Estão bloqueados (encapsulados)
 //pela palavra "private".

 private String nome;
 private String endereco;
 private String telefone

//Métodos get / set. Os set são usados para alterar o valor do atributo.
//e o get é usado para recuperar (obter) o valor de um atributo.
  public void setNome(String valor){
        nome=valor;
  }

  public void setEndereco(String valor){
        endereco=valor;
  }

  public void setTelefone(String valor){
        Telefone=valor;
  }

  public String getNome(){
      return nome;
  }

  public String getEndereco(){
      return endereco;
  }

  public String getTelefone(){
      return telefone;
  }

}

Compreendeu?

té +

blz, cara! mas como isso sera visto pelo usuario? ele determina os valores? e quando devemos usar esse metodos?

Qdo o usuario digita um texto num JTextField e vc quer pergar o q ele digito!!

BLZ ?? :razz:

get pra pegar alguma coisa, e set pra mudar o valor de algo

Meu, seguinte…
por boas práticas, vc naum deve deixar seus atributos acessíveis a qlqr um de fora da classe, portanto vc deve deixar seus atributos com modificador “private”, e criar os métodos get / set para, respectivamente, obter o valor do atributo, ou altera-lo…
Estes métodos servem tbm para vc fazer validações dos valores, por exemplo, vc tem um atributo q idade, q vc naum quer q o valor seja superior a 100. então no método set, vc verifica se o valor eh maior q 100 ou não, se for, vc naum altera… isso eh um exemplo prático…

espero ter ajudado…
[]'s

valeu, cara! obrigado pela ajuda! realmente fou um exemplo bem pratico e me ajudou a entender a parada. valeu!

quando você está programando dentro da classe, vcs acessam os atributos diretamente, ou usam get/set?
eu só vejo gente falando que usa get/set para acessar os atributos de fora da classe, mas eu costumo usar mesmo estando dentro dela… alguém tb faz isso?

quando vocês estão programando dentro da classe, vcs acessam os atributos diretamente, ou usam get/set?
eu só vejo gente falando que usa get/set para acessar os atributos de fora da classe, mas eu costumo usar mesmo estando dentro dela… alguém tb faz isso?

Eae…

rapaz…eu uso tb dentro dela…por costume hehehe…mas nao sei se eh recomendado ou naum fazer isso… :lol: :lol:

flws

Rapah…
Eu uso os métodos sim, mesmo dentro da classe.

A jusfificativa para isso eu particularmente não sei, vou arriscar: para garantir a conscistência ( não sei nem como se escreve isso) disso.

Usar metodos get e set dentro da classe ficaria mais ou menos assim:
Na realidade tambem nao vejo diferenca em utilizar estes metodos dentro da classe, mais pode ser para melhorar o entendimento do programa, sendo um inicio de fatoração de codigo…

Geralmente no construtor é fornecido os valores iniciais, se você não implementar um construtor, quando voce cria o objeto, todos os seus atributos serão NULL, mas utilizando os metodos set, voce pode altera-los
.
public Exemplo {
private int valor;
private String texto;

public Exemplo(int valor, String texto) {
setValor(valor);
setTexto(texto);
}

public void setValor(int valor) {
this.valor = valor;
}

public void setTexto(String texto) {
this.texto = texto;
}

public int getValor() {
return valor;
}

public String getTexto() {
return texto;
}

public String toString() {
return "valor = " + getValor() + " texto = " + getTexto();
}
}

Bom…

Vou dar uma dica…

Estude JNDI depois EJB’s

Ai sim, você vai conseguir ver a importancia da
utilização de um EJB de Entidade, que se não me
engano é onde utiliza-se get e set…

Atn.
Dennys Fredericci