This week's book giveaway is in the Mac OS forum. We're giving away four copies of a choice of "Take Control of Upgrading to Yosemite" or "Take Control of Automating Your Mac" and have Joe Kissell on-line! See this thread for details.
If you define one yourself, it can be public, protected, private, or default, and of course, it can contain arbitrary code. If you leave it up to the compiler to define one, it will be public if the class is public, or default-protected otherwise, and contain no code. But aside from that, there's no difference.