A helpful guidance technique to follow is to write an interface for your class before you start the implementation. Then when implementing, tell yourself that a method not in the interface should be private, or not in that class at all.
If you didn't know a method needed to be there when you were designing the contract of the class, it probably shouldn't be part of its public interface.