Oi Paulo,
Atributos não são apenas private, mas podem ser. Na verdade você pode usar o modificador que quiser (public, private, default, protected).
Os atributos, se não forem estáticos, têm o escopo da instância da classe, ou seja, será acessível de qq ponto da instância da classe, ou fora dela.
Já variáveis locais têm acesso somente em seu escopo.
Atributos de classe nada mais são do que variáveis (ou constantes) com escopo da instância da classe.
Os atributos estáticos já têm o escopo da classe.
Exemplo:
public class SuaClasse {
private String atributo1;
public String atributo2;
public static String atributo3;
public void testar( ) {
atributo1 = "here is fine";
atributo2 = "here is fine";
atributo3 = "here is fine";
}
}
public class Teste {
public static void main( String args[] ) {
SuaClasse c = new SuaClasse();
c.testar();
c.atributo2 = "here is fine too";
SuaClasse.atributo3 = "here is fine too";
}
}