Quando eu devo declarar uma variável como private e quando declarar ela como public?
Dúvida private ou public?
9 Respostas
Uma variavel deve ser declarada como private quando estiver na classe sem a main. Assim vc terá controle dos dados.
Public - quando vc deseja em algum momento que seja possível acessar aquele objeto, mesmo de outra classe.
Private - o inverso. Neste caso, o objeto só pode ser acessado de dentro da própria classe a que ele pertence.
Protected - vc consegue acessar o objeto somente se estiver em uma classe que extenda da classe a qual ele pertence.
o public deve ser usado quando vc quer ter acesso direto a essa váriavel estando em outra classe…
no caso o private não permite isso, ae vc tem que fazer os métodos GET e SET para modificar essa váriavel.
Valeu pelas respostas, vocês são rapidos 
e uma enfase ai,
exitem 4 formas de controle de acesso mais tem um que chega ser uma pegadinha da certificação
que é o default que não é public.
o default so pode ser acessado quando a classe esta no mesmo pacote.
espero ter esclarecido.
att,
Alan Rodrigo.
eu sou iniciante e também agradeço pelas respostas,agora sim eu entendi , eu estava com a mesma dúvida e até ia criar um tópico semelhante xD, eu estou lendo um livro aqui em casa , mas quando eles vão explicar algo como “public” ou “private” é quase uma página de “lero , lero” e no fim não entendo nada.

compare private como uma cueca ela é private certo? agora um carro é public… todo mundo ver nao tem como vc esconder… e sua cueca teoricamente so vc ver : (se é aquela cheia de florzinha, ou ursinho ng tem nada com isso e ng sabe dela).
flw! aplique isso em java que dar certo… crie uma class e declare as variaveis com os modificadores e vc entende 
compare private como uma cueca ela é private certo? agora um carro é public… todo mundo ver nao tem como vc esconder… e sua cueca teoricamente so vc ver : (se é aquela cheia de florzinha, ou ursinho ng tem nada com isso e ng sabe dela).flw! aplique isso em java que dar certo… crie uma class e declare as variaveis com os modificadores e vc entende
Só falta alguém dizer que consegue ver a cueca do outro usando reflection… :roll:
Senhores,
recomendo seguir a seguinte filosofia da OO, propriedades (campos, atributos ou variáveis de um objeto) devem ser sempre declaradas private.
Utilize métodos para criar uma interface para suas propriedades, sigam o modelo sets/gets.
Eu recomendo declarar protected apenas quando a classe for declarada com abstract, e mesmo assim não ocorreia nenhum impedimento de se utilizar o métodos para acessar as propriedades.
Preservar o encapsulamento de uma classe sempre é uma boa idéia.
Use public apenas para constantes (static final)
fw