métodos GET E SET

pessoal, to mto enrolado com isso… acho q vou desistir de java por causa disso… AHAHA… brincadeira 8) .
alguém consegue me explicar definitivamente o q são os métodos get e set?
valeu, galera!

Isso pode te ajudar:
http://blog.caelum.com.br/2006/09/14/nao-aprender-oo-getters-e-setters/

hehe… la vai GET E SET é apenas nomeação… vc pode chamar seus metodos como quiser dar o nome que achar legal… mais como existe uma nomeação para manter a padronização… e ficar facil de ler uma sintaxe… entao alguem disse vamos usar set e get. Segundo a nomeação Java Bean diz:

[b]set/b] --> serve para vc configurar, ou seja, quando seu metodo tem q fazer alterações tipo, mudar valor de variaveis, chamar outro metodo que vai ti trazer um valor e vc vai pegar esse valor e manipular.

get --> ja esse diz assim me traz o valor de alguma variavel… ou seja é um metodo de retorno… olha para esse exemplo simples…

class Simples{
private int idade=10;
//metodo que altera a idade
void setAltera(int z){
idade =z;
}
//metodo que mostra a idade
int getMostra(){
return idade;
}
}

outro codigo sem nomeação JavaBean

class Sem{
int id=4;
void alteradados(int z){
id=z;
}
int mostraosdados(){
return id;
}
}

percebeu que vc é livre a fazer o que quer? isso nao afeta se vai ou nao vai compilar etc… Mas assim ja vi varios codigos em java… e todos seguindo a nomeação… fica mais facil ate… de entender… entao 98% utiliza a nomeação… quando vc trabalha em algumas empresas… as vezes elas define nomeações internas… outras nao… relativo isso…

espero ter ajudado!! qualquer coisa so gritar :smiley:

cara… é o seguinte…

isso faz parte do mundo OO :smiley:

imagine que vc tem o seguinte

public class Teste() {
	private String nome;
	private int idade;
}

isso são atributos… que não podem de maneira alguma ter outro tipo de modificador de acesso!

desta forma… nenhuma outra classe pode ter acesso a eles… (pq eles são privados) desta forma… como vc faria para pegar os valores ou passar valores para esses atributos qnd vc estiver em outra classe???

a resposta seria:
via metodos!

para isso serve os getters e setters… são metodos que pegam e setam valores no seu atributo…

vc naum pode chegar de outra classe e fazer assim:

Teste teste = new Teste();
String nome = teste.nome;

assim vc estaria violando as leis da OO :smiley:

intaum deve ficar assim:

public class Teste() {
	private String nome;
	private int idade;

	public String getNome() {
	
		return nome;
	}
	
	public void setNome(String nome) {
	
		this.nome = nome;
	}

	public int getIdade() {
	
		return idade;
	}
	
	public void setIdade(int idade){
	
		this.idade= idade;
	}
}

e ai em outra classe vc pode pega-los assim:

Teste teste = new Teste();
String nome = teste.getNome();

qualquer duvida… fala ae!

ahhhhhhhhh, saquei… :slight_smile: po, finalmente entendi. me sinto menos burro… haahah o set só indica q n eh a msma variável, neh? por isso o this.nomedavariavel, certo? e o get indica q ele tem q inserir esse valor pra aquela variável q n pode ser alterada?

humm , que isso relaxa hauuhahuaau
Eu vi mais a utilidade deles , qd passei a olhar do ponto de vista do exemplo do erickcellani , os modificadores de acesso fazem que sua classe esteja protegida de acesso esterno , só quem pode mudar os valores de variaveis private , sao os proprios metodos da classe … isso ai vai naquela historia de encapsulamento …
Bem mas isso é uma convenção , um padrao … se tu for no eclipse e clicar com butao direito no seu codigo escolhe as opcoes : Source/Generate Getters And Setters

ele vai te dar a opçao de criar esses metodos para as variaveis que n os tem , mesma coisa o netbeans faz indo em refatoraçao se n me engano…

Caso estaja algo errado do que escrevi, o pessoal ai vai corrigir mas é ± isso ai …

mas a pergunta q nao quer calar… qdo q numa classe externa eu chamo por método get e qdo eu chamo por um método set?

o get , eh quando vc quer pegar o dado da variavel
o set , quanto vc quer mudar o dado da variavel

por exemplo

em vez de fazer isso:
classequalquer.variavel=10;
vc faz isso classequalquer.setVariavel(10);

ou

System.out.println(“O Valor é:”+classequalquer.variavel);
vc mostra assim
System.out.println(“O Valor é:”+classequalquer.getVariavel());

valeu, junioma!
=) brigadão, cara… :slight_smile:
brigadão a todos!

Espero ter ficado mais claro …
[]s
Disponha!

[quote=junioma]o get , eh quando vc quer pegar o dado da variavel
o set , quanto vc quer mudar o dado da variavel

por exemplo

em vez de fazer isso:
classequalquer.variavel=10;
vc faz isso classequalquer.setVariavel(10);

ou

System.out.println(“O Valor é:”+classequalquer.variavel);
vc mostra assim
System.out.println(“O Valor é:”+classequalquer.getVariavel());[/quote]

bom… eu diria atributo!!..

mas é isso ae…

se vc ker pegar o valor do atributo vc usa o metodo get… (esses nomes get e set são apenas nomes por padrão ta… oq importa mesmo é o que ele faz… mas fica mto mais simples com get e set :D) se vc kiser setar um valor neste atributo vc usa o set…
e cara… naum se preocupe… todos os iniciantes tem dificuldades como essa, naum se sinta burro por naum saber algumas coisas!!!..

quero deixar os meus parabéns para vc diogo.delgaudio
pela simplicidade!!!

É erickcellani , vc esta correto :stuck_out_tongue:
:oops:
:lol:
direto eu “troco as bolas” mas brigado por lembrar :stuck_out_tongue:

setAltera e getMostra foi um exemplo TRISTE.

:roll: hhahua

e como fazer um set e get com object como parametro?

Boa tarde a todos, como a maioria sou novo no mundo java e ja pesso desculpas por reativar este topico.

Estou com duvida ainda nesta parte de gets e sets, mas de uma forma diferente eu criei um cadastro simples como exemplo e notei que mts programadores criam uma classe com os contrutores e uma classe com o visual e por ultimo uma classe com os listeners

Classe de Construtores

public class Funcionario {

   private Integer nCodigo;
   private String cNome;

    public Integer getnCodigo() {
        return nCodigo;
    }

    public void setnCodigo(Integer nCodigo) {
        this.nCodigo = nCodigo;
    }

    public String getcNome() {
        return cNome;
    }

    public void setcNome(String cNome) {
        this.cNome = cNome;
    }
}

Classe Frame

public class FunCadastro extends JInternalFrame {

   private FunListeners  funListeners; 
   private JTextField    nCodigo, cNome;
   private JLabel         lbCodigo, lbNome;

   public FunCadastro() {
       lbCodigo = new JLabel("Codigo:");
       lbNome = new JLabel("Nome:");

       nCodigo = new JTextField(8);
       cNome = new JTextField(60);         

	funListeners = new FunListeners(this);
   }

   { 

       // Aqui vem todo o resto do meu codigo

   }

}

Bom este é um exemplo bem simplorio, servindo somente para expor a minha duvida, que é a seguinda, eu preciso passar as informacoes de codigo e nome pra la e pra ká, sendo assim eu preciso usar os gets e sets da classe Funcionario e passar este Funcionario como argumento para o FunListeners ?, eu preciso criar gets e sets para o FunCadastro ?.

Para resumir neste listener eu faco uma consulta ao banco de dados e carrego as informacoes para o FunCadastro e depois de alterar os dados eu preciso passar estas informacoes para o FunListeners onde esta a parte de INSERT e UPDATE para atualizar o banco de dados.

Espero ter sido claro, ja agradeço qualquer ajuda.

Prefira abrir um tópico para a sua dúvida, depois, claro, de procurar no fórum se ela já não foi respondida em algum lugar.

Valeu farei isso nas proximas, obrigado pela dica !