Set 04 Study Questions

1.    List as many reasons as you can for why it is so important to invest lots of time in the “design” of a large-scale software project before the project is coded.  (Several reasons were listed in class.)

2.   What is meant by “the state” of an object?

3.    What is meant by “the behavior” of an object?

4.     How is the state of an object represented in the corresponding class definition?

5.   How is the behavior of an object represented in the corresponding class definition?

6.  What is “the heap”?

7.  What is a “reference variable”?

8.  Draw the memory map (including the “variable stack” and the “heap”) for the following code fragment:

double x = 7.9;

double y = x;

String q = new String(“Cat”);

String r = q;

String s = new String(r);

9.   What is actually stored in the variable “q” in the previous question?

10.   Given the code fragment above, is it correct to say that “q is a String object”?  Is it correct to say that “q refers to a String object”?  Is it correct to say that “x is a double”?  Is it correct to say that “x refers to a double”?

11.  How many String objects are actually created (instantiated) in the code fragment above?

12.  After the code fragment above has been executed, decide which of the following expressions are true and which are false:

x == y

q == r

r == s

q == s

q.equals(r)

r.equals(s)

q.equals(s)

13.  What is aliasing?

14.  What is meant by the term “garbage” in Java?  Write a code fragment that creates garbage.

15.  Consider the assignment statement:

x = y;

If the variables are of type “int”, does the integer get copied?  If the variables are of type “String”, does the String get copied?

 

16. Write a class called “Cat”.  Invent a few “instance variables” that make sense for a Cat.  Include a constructor that allows the user to specify values for all of the instance variables at the moment the Cat object is instantiated (created).  Include a toString method that produces a String representation of the state of the Cat.  Include an equals method that makes sense to you.  Write some other methods (behaviors) that Cats should be able to do.  Make sure that you have practiced some method(s) that require parameters to be passed in.  Make sure that you have practiced some methods that return a value.

 

17.    Write a driver for the Cat class that you created above.  The driver should create a few Cats and then test out all of the methods that you have written.  Try to test everything thoroughly!