dúvida besta com o modificador private

Pessoal, desculpe a ignorância, mas eu queria saber a diferença disto:

No início da classe, portanto antes de todos os métodos, eu declaro uma variável assim:

int valor_1 = 100;

Daí (acredito) ela fica local à classe, podendo ser acessada por todos os métodos desta classe.
Se é assim, por que eu deveria usar a expressão abaixo?

private int valor_1 = 100;

Não seria a mesma coisa?

quando vc nao declara nenhum modificador essa variavel torna-se padrão acessivel para todo o pacote.
quando vc declara private somente para classe que declaro.

Quando você usa private você faz com que essa variável não seja visível a outras classes.

Quando você não declara o modificador. Você usa a visibilidade padrão, que é a public.
O modificador public permite que você acesse as variáveis dessa classe usando o operador ponto.

Um exemplo legal. Lá na classe java.lang.Math tem uma variável declarada assim:

static double PI = 3.14...... 

E você pode acessá-la de qualquer uma de suas classes. Veja no código abaixo o cálculo da área do círculo:

[code]
double raio;
double area;

raio = getRaioFromTeclado(); //abstraia

area = Math.PI * Math.pow(raio,2);
[/code].

variável pública me lembra structs de C.

Quando vc nao declara modificador torna-se padrao visivel somente para o pacote.

Quando vc coloca sua variavel como public é visivel a todas as classe inclusive pacotes.

package carros; public class Car { double preco; // Nota 1 }

Nota1: Não foi definido nenhum modificado, portanto assume o modificador padrão

package oficina; import carros.*; class Oficina { public static void main(String[] args) { Car c = new Car(); c.preco = 13990.00; // Nota 2

Nota2: Acesso não permitido para classes de pacotes diferentes. Erro de compilação

entao padrao é uma coisa.
public é outro :wink:

Agora voltando ao assunto

Um variável private restringe o acesso somente a própria classe
Uma variavel nao declarada(padrao), o acesso só é permitido a classes dentro do mesmo pacote

boa.
=]