[b]private ou public ?[/b]

9 respostas
E

Tipo… lendo o acesso a membros não compreendi a finalidade de usar dados public ou private (ou métodos) porque não deixar todos public? q tipo de erro posso encontrar na falta de manipulação de tais controladores??

9 Respostas

M

Opa,

bem, é um padrão, uma boa forma de programação deixar os atributos e métodos que devem ser utilizados apenas em uma classe ser do tipo privados. E para atributos serem acessados utilize get/set. Não faz muito sentido, é mais por questão de ordem. Pelo menos é minha opnião!

:okok:

J

Imagine essa classe:

public class Pessoa{
   public int peso;
}

public static void main(String[] a){
   Pessoa pes = new Pessoa();
   pes.peso = -50;
}

por mais magra que a pessoa seja, o peso dela nunca poderá ser negativo…
8O

mas como é um atributo int o usuario põe qualquer int lá dentro… se você usar os metodos de acesso você pode controlar isso…

public class Pessoa{
   private int peso;
   
   public void setPeso(int p){
     if(p>0){
       peso = p;
     }
   }
}

pronto, agora o usuario nao pode atribuir valores negativos para o peso…

para alguns atributos nao é feita nenhuma validação, porem se voce encapsula alguns e outros nao, voce fica sem padrão…

S

A questão é que você acha que só você vai usar seu código.

Imagine que alguém usasse um JFrame assim: frame.height = -10;
Mas não dá, tem que usar o setSize(), que vai lidar com situações desse tipo.

P

O nome disse é encapsulamento, procure no Google. Não é uma ordem, é o pilar básico de programação orientada a objetos.

Colocar get/set acessando seus métodos não é muito diferente de atributos públicos, e deve ser evitado o máximo possível.

D

Usa-se o private para garantir a regra de negocio da sua aplicação!

P

Como assim?

D

Então pcalcado a resposta do jairelton é uma maneira de se garantir a regra do negocio…

Acho que é uma maneira de se certificar de que determinada regra será seguida assim como a do peso e altura, ninguém nunca irá pesar -50 e ter 5,00m de altura. Creio eu que garantir a regra do negocio tenha mais ou menos esse conceito!

Me corrija caso esteja errado!

Falou!

P

Mais ou menos, é uma maneira de garantir o estado do objeto, chamada invariante.

www.fragmental.com.br/arquivos/contratosnulos.pdf

D

Compreendi, Obrigado!

Criado 30 de julho de 2005
Ultima resposta 2 de ago. de 2005
Respostas 9
Participantes 6