1a) Disagree. The constructor for X should be used to initialize the fields of X. 1b) X objects are created as subobjects of Y and Z objects (i.e., every Y and Z object has an X object inside of it). 1c) Any weaker precondition is acceptable; e.g., aIn > -1 1d) Any stronger precondition is acceptable; e.g., returns aIn + 1 2a) An alias of t is just another name for t: List alias = t; 0 ArrayList objects will be created 0 Date objects will be created 2b) A shallow copy of t makes a new list, but does not make new elements of the list: List shallow = new ArrayList(t); 1 ArrayList objects will be created 0 Date objects will be created 2c) A deep copy of t makes a new list, and makes new elements for the new the list: List shallow = new ArrayList(t); 1 ArrayList objects will be created 2 Date objects will be created 2d) A shallow copy. 2e) You must make a new HashMap For each key (keys are String references), you must make a deep copy of the corresponding value (values are Date references). You do not need to create new keys because String is immutable. 3a) The Controller must invoke View methods. 3b) The Controller must invoke Model methods. 3c) The View creates the JButton. 3d) The JButton has a reference to the Controller because the JButton must invoke the ActionPerformed method in the Controller.