Hi
You need to think about what the access modifiers (like private) mean. Why are these a good idea, when might you want to use them?
You should also check out the behaviour when it comes to inheritance.
Often, people talk about making class members private, to force access through methods. This serves 2 purposes - as the author of the access method(s), you can add rules, validation, etc., you can also protect the user of the method from the actual type you use to store the data in (this means you could change the member type without affecting callers. A godd example would be the Collections classes. Do you know (or care) if the underlying store is an array, or some other object?
So thats a good reason for things being private, but there are times when that wouldn't make sense - Math.PI will always be the same value so thers no point hiding it!
Lastly, if you dont want your member to change, make it final and intialise it before anyone else can.
hope this helps
Ramen