CPSC 124, Fall 2011
Quiz #6
Question 1. What is null?
Answer. null is a special value that can be stored in a variable to indicate that that variable is not pointing to any object. (The variable must be of object type, that is, one that can point to objects.) null is a pointer that doesn't point to anything!
Question 2. What is the main difference between static and non-static member variables in a class?
Answer. There is only one static variable. There is one non-static variable in each object that is created from the class that defines the non-static variable.
(A static variable is part of the class in which it is defined, and it exists as long as the class exists. A non-static variable is not part of the class -- you don't get a variable until you create an object from the class. The variable is part of the object, and each object has its own version of the variable.)
(Note: "instance variable" is another term for "non-static variable".)
Question 3. Explain what the following statements do. What does the computer do when it executes them, and what is the result? It might help to draw a picture. (Assume that Thing is the name of a class that contains an appropriate constructor.)
Thing a; a = new Thing("One");
Answer. The first line creates a variable named a of type Thing. (This variable is capable of referring to an object of type Thing, but it currently has no value.) The second line creates an object of type Thing, calls a constructor in that class, and stores a pointer to the new object in the variable a. (Class Thing must contain a constructor that takes one parameter of type String.)
The picture would show the variable a with an arrow from a to the object.
Question 4. The class on the left below creates objects that represent names consisting of a first name and a last name. Write a short main program to test this class by creating an object of type FullName and then printing out the first and last names from that object.
public class FullName { private String first, last; public Name(String a, String b) { first = a; last = b; } public String getFirst() { return first; } public String getLast() { return last; } }
Answer.
public class TestFullName { public static void main(String[] args) { FullName name; // Create a variable of type FullName name = new FullName("Fred","Astaire"); // Create an object of type FullName System.out.println( name.getFirst() + " " + name.getLast() ); } }