Written by Jonas Altrock (ew20b126@technikum-wien.at).
The second exercise is about class constructors in Java. There are two types of constructors with special names: the default constructor takes no arguments, and is used as the "base case" for the object; the copy constructor takes one argument which is of the same type as the class itself, and is meant to copy all the internal state of the other object.
We are asked to augment our existing classes MusicLandscape.entities.Track and MusicLandscape.entities.Artist with constructors, as well as implement a new class MusicLandscape.entities.Event. The Event class makes use of our own entity types, as well as two provided classes, MusicLandscape.Date and MusicLandscape.Venue.
Aside from the constructors, the important thing in this assignment is to get the setters correct. They should implement a check of the incoming value which enforces some (arbitrary) rules about the allowed range of values.