Classes encapsulate the object-specific structure and logic of entities in Cherrycake and in your application.
Additionally to your own class implementations, Cherrycake provides core classes for entities that are used throughout the engine and that you can use or extend in your application, like the Result class, which represents the result of an operation of any kind, or the Color class, which simply represents a color.
Classes are automatically loaded whenever they're needed, meaning you don't need to predict which classes you'll be using.
Modules are intended to pack process-specific functionality, can be triggered with actions (see Lifecycle), can have configuration files and can even depend on other modules. Classes are intended to pack object-specific functionality, cannot be triggered with actions and don't get configuration files.
If you're creating a social networking web application, the code to show the user profile page would go in a module you might want to call ProfilePage. In the other hand, you might want to have a User class to hold the information and the logic for that specific user.