Cara, cada um dos set e get estão referenciando que cada atributo private que você declarou.
Sem eles, você não terá acesso a eles.
Usando o seu exemplo:
[code]public class Estoque
{
private int idEstoque;
private String produto;
private double preco;
public void setIdEstoque(int idEstoque)
{ this.idEstoque = idEstoque;}
public void setProduto(String produto)
{ this.produto = produto;}
public void setPreco(double preco)
{ this.preco = preco;}
public int getIdEstoque()
{ return this.idEstoque;}
//Tirei o set e o get do preco;
// se você tentar fazer algo do Tipo
// Estoque e = new Estoque();
// e.setPreco(100.);
//Isso irá gerar um erro pois o preço não possui o set.
[quote=raphael.ricci]Cara, cada um dos set e get estão referenciando que cada atributo private que você declarou.
Sem eles, você não terá acesso a eles.
Usando o seu exemplo:
public class Estoque
{
private int idEstoque;
private String produto;
private double preco;
public void setIdEstoque(int idEstoque)
{ this.idEstoque = idEstoque;}
public void setProduto(String produto)
{ this.produto = produto;}
public void setPreco(double preco)
{ this.preco = preco;}
public int getIdEstoque()
{ return this.idEstoque;}
//Tirei o set e o get do preco;
// se você tentar fazer algo do Tipo
// Estoque e = new Estoque();
// e.setPreco(100.);
//Isso irá gerar um erro pois o preço não possui o set.
}
Espero ter ajudado.[/quote]
Não gera nenhum erro,
porém o atributo fica inacessível para qualquer classe que não seja a própria classe Estoque, pelo menos do jeito que ela está agora.
Estou meio confuso ainda, mas pelo que já consegui captar aqui, é que através dos “gets” e “sets” eu implemento encapsulamento, ou seja, é para acessar, atributos encapsulados? Ou é outra coisa?
[quote=charleston10]Essa mistura de Getters e Setters (get e set);
É uma variavel encapsulada de uma classe que serve para receber valores ou para mostrar valores.
Encapsulamento nada mais é do que atribuir esses metodos get e set em uma variavel (atributo aqui).
O método set -> serve para alterar o valor dessa variavel;
O método get -> serve para mostrar esse valor (get de pegar “pega o valor”);
Resumindo -> encapsular serve para uma variavel receber ou mostrar um valor;
=]
[/quote]
Opa… muita calma nessa hora hehehe…
Encapsulamento serve pra você ocultar algo, de alguém que não precisa saber o que acontece interiormente.
O exemplo de getters e setters é pra encapsular a atribuição/recuperação dos dados, de maneira tal que quando uma classe externa invoca um método get(), não sabe como ele é implementado, e por isso essa implementação pode mudar sem afetar quem invoca o método.
outras coisas podem ser encapsuladas, como sua regra de negócio.
Tem um post muito bacana do ViniGodoynesse tópico, falando justamente sobre isso, vai descendo que você encontra É uma leitura que vale a pena.
Usando outro exemplo… Isso aqui faz a mesma coisa, basicamente? Pois foi assim que aprendi vagamente, e quando peguei o código que citei anteriormente passei apuros.
[code]class vendas
{
public String cliente;
public String preco;
[quote=Galego Henrique]Usando outro exemplo… Isso aqui faz a mesma coisa, basicamente? Pois foi assim que aprendi vagamente, e quando peguei o código que citei anteriormente passei apuros.
[code]class vendas
{
public String cliente;
public String preco;
[quote=digaoneves][quote=charleston10]Essa mistura de Getters e Setters (get e set);
É uma variavel encapsulada de uma classe que serve para receber valores ou para mostrar valores.
Encapsulamento nada mais é do que atribuir esses metodos get e set em uma variavel (atributo aqui).
O método set -> serve para alterar o valor dessa variavel;
O método get -> serve para mostrar esse valor (get de pegar “pega o valor”);
Resumindo -> encapsular serve para uma variavel receber ou mostrar um valor;
=]
[/quote]
Opa… muita calma nessa hora hehehe…
Encapsulamento serve pra você ocultar algo, de alguém que não precisa saber o que acontece interiormente.
O exemplo de getters e setters é pra encapsular a atribuição/recuperação dos dados, de maneira tal que quando uma classe externa invoca um método get(), não sabe como ele é implementado, e por isso essa implementação pode mudar sem afetar quem invoca o método.
outras coisas podem ser encapsuladas, como sua regra de negócio.
Tem um post muito bacana do ViniGodoynesse tópico, falando justamente sobre isso, vai descendo que você encontra É uma leitura que vale a pena.[/quote]
o use a cabeça padrões de projetos tem uma parte que brinca, ja encapsulamos isso, aquilo, aquilo outro, agora vamos encapsular xxx…
[quote=Galego Henrique]Usando outro exemplo… Isso aqui faz a mesma coisa, basicamente? Pois foi assim que aprendi vagamente, e quando peguei o código que citei anteriormente passei apuros.
[code]class vendas
{
public String cliente;
public String preco;