Question: What is the benefit of making fields private while creating an immutable class?

I have seen [why while creating immutable class, fields are declared as private?](https://stackoverflow.com/q/19144062/2830834) but I didn't get understand anything from this post.

Can anybody please explain me the same?

Answer: 
An object that is referred to by a `public final` reference-type field *can* still be modified through that field. (What you *can't* do is change the field to refer to a different object.)

To disallow unwanted modifications, you need to make the field `private`.
If you'll use `public` field other objects will be able to change state of your "almost-immutable" object which will break encapsulation and make it a mutable object.