Hola Dan
A las palabras clave public y private se les llama: modificadores de acceso.
Que en otras palabras quiere decir que establecen o estipulan quien puede acceder a esos atributos, variables o métodos.
Refiriéndonos a los atributos. Ejem. La declaración:
private String nombre;
Significa que la instrucción
nombre = valorNombre;
Solo puede hacerse en la clase donde se ha declarado este atributo. El acceso a este atributo es privado exclusivamente a la clase propietaria del atributo.
Refiriéndonos a los métodos. Ejem.
public getPrecio() { return precio; }
Este método getPrecio es accesible a todo el mundo, es de acceso público.
Tiene sentido que el método sea público, si no no podríamos invocarlo desde otra clase con main para averiguar el precio.
Espero haberte ayudado.
Saludos