05: Equality, Namespaces, Packages, and the CLASSPATH

Submit this homework using Gradescope. You can type up your answers, or write legibly and scan them. Do not attempt to submit a paper copy in class, as it will not be accepted.


A. (3 points) Given the following code, what is the output? Assume a public number instance variable, and a equals() method that uses only this instance variable to check if two Bus objects values’ are semantically equal.

Bus busA = new Bus();
Bus busB = new Bus();

busA.number = 44;
busB.number = 44;

System.out.println(busA == busB);
System.out.println(busA.equals(busB));

Bus busC = busB;
busB = busA;

busA.number = 13;

System.out.println(busA == busC);
System.out.println(busA.equals(busC));

busC = busB;

System.out.println(busA == busC);
System.out.println(busA.equals(busC));

B. (1 point) Suppose you have a single directory on your CLASSPATH, /Users/student/src/. That is, the src directory (located inside student, located inside Users) is on your classpath.

Suppose the first line of a Java source file named “Banana.java” is:

package produce.fruits;

Where exactly should this file be located? Specify the full path to the file. For example, a wrong answer is “in /Users/Banana.java”. Another wrong answer is /produce/fruits/Banana.java.

C. (2 points) Suppose we add a file named “Broccoli.java” to the project above, and we want the Broccoli class to reside in the produce.vegetables package. What should the first line (the package declaration) of the Broccoli.java file be? And, what should the full path to the file be?

D. (1 point) Finally, suppose we want to reference the Broccoli class from within the “Banana.java” source. What import statement must we to add to the Banana.java file? If none is necessary, say so.