Private is anything that has to do with the inner-workings of our class and should not be touched (left sanitized). For instance, maybe a path to a directory or the path to a web service, which has no use to whomever uses the class, but depends greatly on how the class operates.
Public is typically anything you'd like to expose to whatever is using the class such as a generated value, a username/password configuration--something that (though the class has set [generic] functionality) may be specific to that instance or run-time.
Think of it like running a business; You may provide a service to your customers that they understand what information is necessary of them for you to operate (public information). Supplemental to that, you need information of your own (vendors, pricing, etc.) that you don't want them to know about, but would need to function properly (private).