|
|
Start of Tutorial > Start of Trail > Start of Lesson |
Search
Feedback Form |
Question 1: Match each situation in the first column with the most appropriate type of nested class in the second column.
|
a. The only users of this nested class will be instances of the enclosing class or instances of the enclosing classs subclasses. |
1. anonymous inner class |
|
b. Anyone can use this nested class. |
2. protected inner class |
|
c. Only instances of the declaring class need to use this nested class, and a particular instance might use it several times. |
3. public static nested class |
|
d. This tiny nested class is used just once, to create an object that implements an interface. |
4. protected static nested class |
|
e. This nested class has information about its enclosing class (not about instances of the enclosing class) and is used only by its enclosing class and perhaps their subclasses. |
5. private static nested class |
|
f. Similar situation as the preceding (choice e), but not intended to be used by subclasses. |
6. private inner class |
Answer 1:
- a. 2. (protected inner class)
- b. 3. (public static nested class)
- c. 6. (private inner class)
- d. 1. (anonymous inner class)
- e. 4. (protected static nested class)
- f. 5. (private static nested class)
Question 2: The program
Problem.javadoesn't compile. What do you need to do to make it compile? Why?
Answer 2: Addfinalin front of the declaration of thetimervariable. A nested class declared within a method has access to any final, local variables in scope.
SeeProblemSolved.java.
Question 3: Use the 1.3 API documentation for theBoxclass (in the
javax.swingpackage) to help you answer the following questions.a. What static nested class doesBoxdefine?
Answer 3a:Box.Fillerb. What inner class doesBoxdefine?
Answer 3b:Box.AccessibleBoxc. What is the superclass ofBoxs inner class?
Answer 3c:[java.awt.]Container.AccessibleAWTContainerd. Which ofBoxs nested classes can you use from any class?
Answer d:Box.Fillere. How do you create an instance ofBoxsFillerclass?
Answer 3e:new Box.Filler(minDimension, prefDimension, maxDimension)
Exercise 1: First, get the source fileInnerClassDemo.java.
a. Compile and runInnerClassDemo.java.
Answer 1a: N/A. [This step is here just to make sure you can compile and run Swing programs, before you try to change the programs.]
b. Make a copy of
InnerClassDemo. Add to it an inner class named
MyActionListenerthat implements theActionListenerinterface. TheActionListenerinterface defines a single method. Put the following code into your implementation of the method:quit();
Delete the double forward slashes (//) in front of the following line of code:
//button.addActionListener(new MyActionListener());Now compile and run the program. What is the difference in behavior between this version and the previous version of
InnerClassDemo?Answer 1b: See
InnerClassDemo2.java. In this version, the button actually does something; it makes the program exit.
c. Make a copy of the program you created in exercise 1b. Change your
ActionListenerimplementation to be an anonymous inner class. (Hint: The program has another anonymous inner class, aWindowAdapter, which you can refer to for syntax help.)Answer 1c: See
InnerClassDemo3.java.
Exercise 2: Get the fileClass1.java.
a. Compile and runClass1. What is the output?
Answer 2a:InnerClass1: getString invoked.
InnerClass1: getAnotherString invoked.b. Create a file called
Class2.javathat defines subclasses of bothClass1and its inner class,InnerClass1. (Call the subclassesClass2andInnerClass2, respectively.)InnerClass2should override thegetAnotherStringmethod to return"InnerClass2 version of getAnotherString invoked".Class2should define one constructor and one method:
- A no-argument constructor that initializes the inherited
icinstance variable to be an instance ofInnerClass2- A main method that creates an instance of
Class2and invokesdisplayStringson that instanceWhat is the output when you run
Class2?Answer 2b:
InnerClass1: getString invoked.
InnerClass2 version of getAnother String invoked.See
Class2.java.
|
|
Start of Tutorial > Start of Trail > Start of Lesson |
Search
Feedback Form |
Copyright 1995-2004 Sun Microsystems, Inc. All rights reserved.