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!
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
cara… é o seguinte…
isso faz parte do mundo OO
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
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… 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…
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
:oops:
:lol:
direto eu “troco as bolas” mas brigado por lembrar
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 !