Well, there are actually
three places where you would put your explanations.
1.
Java Docs: describe your class interfaces as well as public method documentation. That would be for the class users that do not need or do not have access to the source code.
2. Comments inside the code: this is for your fellow programmers who would be maintaining your code. If you think they may have trouble understanding what your code does and why, add your comments.
3. DesignChoices.txt: that's a 3 to 10 pages document just for the grader. In there, you would describe your design decisions fully.
You may also have a requirement for the user documentation. That would be the
fourth place. In there, you would just describe the purpose of the program and how to use it fro the end user point of view.