salve pessoal po pj!!!
ao dar a permissão de acesso private para variáveis de uma classe eu de certa forma protejo minha classe contra erros em manutenções futuras já que minhas variáveis só vão poder ser acessadas pelos meus métodos destinados a isso. dando essa permissão posso atrapalhar um pouco a legibilidade do programa em geral. mas isso pode de alguma forma fazer o programa perder em confiabilidade? se sim, pq?
Obrigado pela atenção.
<TIAGOVINICIUS>
ps: sabendo isso iniciarei um trabalho bem teórico da faculdade
Permissões de acesso
6 Respostas
Pessoal, so aproveitano o bote rsr
Tem um topico aqui mesmo no PJ q fala quantificadores de acesso como public, final, private…
alguem lembra o link ?
Um submarino é um conjunto de caixas-dentro-de-caixas. Cada caixa tem que esconder o máximo de detalhes possível, deixando o mínimo de cabos e tubos de fora. Isto obviamente diminui as chances de erro e acidentes, além de manter uma mesma ‘cara’, apesar de mudanças no mecanismo interno. De preferência, uma caixa isolada só mostrará conectores (métodos públicos), que obedecem a uma norma da Marinha (JavaBeans).
Algum cuidado deve ser tomado para não expor inadvertidamente o interior da caixa, facilitando sabotagem. Exemplo:
public class X
{
private Y a [] =
{
..., ..., ...,
};
public Y [] getA()
{
return a;
}
}
Um código malicioso, ou mesmo por acidente, pode detonar a classe (e afundar a nave).
Acho que o Ratinho se refere a este tópico .
A regra é clara: variáveis devem ter acesso privado. Se você violar poderá comprometer a qualidade do seu software. E você estará perdendo vários benefícios da orientação a objetos: encapsulamento, manutenibilidade, polimorfismo, etc.
Exemplo: Suponha a classe abaixo.
class Produto {
public String nome;
public int preco;
}
Essa classe funciona maravilhosamente bem. Se você quiser alterar o valor do preço de um objeto dessa classe basta fazer
produto1.preco = novoPreco;
Mas um belo dia seu chefe pede para você alterar o preço apenas se o aumento ou desconto não for maior que 30 % do preço atual. Se você deixar as variáveis públicas, vai ter que percorrer todo o código onde a propriedade preço é alterada e inserir algo como isto:
if(precoValido(novoPreco)){
produto1.preco = novoPreco;
}
Mas se você sua classe fosse assim …
class Produto {
private String nome;
private int preco;
public int getPreco(){
return preco;
}
public String getNome(){
return nome;
}
public void setPreco(int preco){
this.preco = preco;
}
public void setNome(String nome){
this.nome = nome;
}
}
você só teria que alterar o método setPreco! 
Essa regra deve ser violada apenas em raros casos de otimizações…
mano, ler essas coisas de nerds eh muito chato
coloca la as variaveis em private
por causa que tipo
vo dar um exemplo simples
vai la poe
public class Conta
{
String Nome;
}
blz neh
dai mais pra frente vc nao gosta mais de nome e pensa em mudar o atributo nome da classe conta para Titular
todas as outras classses que vc usou a passagem de parametro ContaTeste.Nome, voce ira precisar alterar :// pensou um program com 100 000 classes? esta feito 
bem colocando os atributos com acesso privado
qndo quiser mudar simplesmente mude na mesma classe
somente substituindo os metodos que dao acesso a estes atributos
por default sao os seguintes
public void setNome(String x)
{
this.Nome = x;
}
public String getNome()
{
return this.Nome;
}
alterando o campo ficaria
public void setNome(String x)
{
this.Titular = x;
}
public String getNome(String x)
{
return this.Titular;
}
dai qndo vc usar ContaTeste.setNome(“joao”);
em otra classe, nao precisara mudar os nomes dos metodos 
em tds as classes do projeto para mudar o nome do atributo simplemente passa na a primeira classe e muda soh ela 
lembrando q os nomes dos metodos NUNCA! mudam 
to passando rapido por cima, mas acho que era essa a sua duvida 
[]s
Acho que o Ratinho se refere a este tópico .A regra é clara: variáveis devem ter acesso privado. Se você violar poderá comprometer a qualidade do seu software. E você estará perdendo vários benefícios da orientação a objetos: encapsulamento, manutenibilidade, polimorfismo, etc.
Exemplo: Suponha a classe abaixo.
class Produto { public String nome; public int preco; }Essa classe funciona maravilhosamente bem. Se você quiser alterar o valor do preço de um objeto dessa classe basta fazer
produto1.preco = novoPreco;Mas um belo dia seu chefe pede para você alterar o preço apenas se o aumento ou desconto não for maior que 30 % do preço atual. Se você deixar sua classe pública, vai ter que percorrer todo o código onde a propriedade preço é alterada e inserir algo como isso:
if(precoValido(novoPreco)){ produto1.preco = novoPreco; }Mas se você sua classe fosse assim …
class Produto { private String nome; private int preco; public int getPreco(){ return preco; } public String getNome(){ return nome; } public void setPreco(int preco){ this.preco = preco; } public void setNome(String nome){ this.nome = nome; } }você só teria que alterar o método setPreco!
Essa regra deve ser violada apenas em raros casos de otimizações…
E esse mesmo vinci!! Valeu!!
E parabens pela resposta!
salve pessoal!!!
muito obrigado pela ajuda. todas as minhas dúvidas, vamos dizer, iniciais foram esclarecidas com a ajuda de vcs!
valeu mesmo.
<TIAGOVINICIUS>