I have gathered the requirements from my users/my customer. How do I find out which classes, methods etc. I will need?
Coming up with a good design is far from trivial. A good design will need to solve the customers problem, run with acceptable performance on the target platform, communicate to the development team and be flexible enough accommodate for future changes.
There is no simple formula that if just applied correctly will give you a good design. Designing a software system needs a lot of creativity and experience. In fact, even the most experienced designer won't come up with the perfect design in one big swoop for anything but the most trivial of systems. A good team will converge on a good design iteratively; some even call it evolutionary.
If you don't have that experience, among the best things you can do to learn are:
collaborate closely with a more experienced designer
practice a lot
discuss your designs with others
use tests to help you adapt the design in the future without breaking things
learn how to refactor your design to incorporate new learning
Having said that, there are some guidelines that can help you come up with classes: