Howard Wang

advertisement
Howard Wang
CS1007
Homework #3
3/11/2004
Exercises
5.2
Explain why a static method cannot refer to an instance variable.
A static method is only associated and invoked through the class itself, and not an
instance of the class. An instance variable exists only in instances of the class.
Therefore, a static method has no access to instance variables since it is not associated
with an instance of a class, which is the only place where instance variables can exist.
5.6
Create an interface called VCR that has methods that represent the standard
operations on a video cassette recorder (play, stop, etc.). Define the method
signatures any way you desire. Describe how a class might implement this
interface.
public interface
{
public void
public void
public void
public void
public void
}
VCR
play(boolean playing, double position);
stop();
fastFwd(boolean playing, double position);
rewind(boolean playing, double position);
eject();
A class that implements this interface will simply define the methods to perform the
corresponding action of the abstract method declared here. The play method will take
a boolean parameter specifying whether or not something is currently playing, and
either play or pause accordingly. It will also take a double specifying the time in a
recording when the method is invoked. The fastFwd and rewind methods also take
boolean parameters that specify whether something is being played or not, and will
perform different types of rewind/fast forward actions that may be defined by the
class that implements this interface, depending on the context in which the methods
are being invoked. Similarly, these two methods will take and process a type double
parameter called position much in the same way that play does.
5.7
Draw a UML class diagram that shows the relationships among the elements of
Exercise 5.6.
Player
1
<<interface>>
VCR
main (args : String[]) : void
1
+ play (boolean, double) : void
+ stop () : void
+ fastFwd (boolean, double) : void
+ rewind (boolean, double) : void
+ eject () : void
Tape
- position : double
- duration : double
- title : String
5.8
Draw a UML class diagram that shows the relationships among the classes used
in the PushCounter program.
PushCounter
ButtonListener
- APPLET_WIDTH : int = 300
- APPLET_HEIGHT : int = 35
- pushes : int
- label : JLabel
- push : JButton
<<interface>>
ActionListener
+ init() : void
+ actionPerformed(ActionEvent) : void
5.9
Draw a UML class diagram that shows the relationships among the classes used
in the Fahrenheit program.
Fahrenheit
FahrenheitGUI
- WIDTH : int = 300
- HEIGHT : int = 75
- frame : JFrame
- panel : JPanel
- inputLabel : JLabel
- outputLabel : JLabel
- resultLabel : JLabel
- fahrenheit : JTextField
1
main (args : String[]) : void
1
TempListener
+ display() : void
<<interface>>
ActionListener
+ actionPerformed(ActionEvent) : void
6.1
Which of the following are valid declarations? Which instantiate an array
object? Explain your answers.
int primes = {2, 3, 4, 5, 7, 11};
Invalid, attempts to assign an initializer list to a variable declared as an integer
type, not an integer array.
float elapsedTimes[] = {11.47, 12.04, 11.72, 13.88};
Valid, brackets signifying an array can follow either the type or the variable
int[] scores = int[30];
Invalid, needs new operator preceding int[30];
int[] primes = new {2,3,5,7,11};
Invalid, new operator not required when initializing an array using an
initializer list
int[] scores = new int[30];
Valid
char grades[] = {‘a’, ‘b’, ‘c’, ‘d’, ‘f’};
Valid
char[] grades = new char[];
Invalid, size of array not specified.
6.3
Describe what problem occurs in the following code. What modifications should
be made to it to eliminate the problem?
int[] numbers = {3, 2, 3, 6, 9, 10, 12, 32, 3, 12, 6};
for (int count = 1; count <= numbers.length; count++)
System.out.println (numbers[count]);
In the preceding code fragment, the println statement in the for loop will not print all
the values to the screen and will also throw an error when it tries to print the last
value specified by the local count variable. This is due to the fact that Java indexes
array values from 0 to N-1 instead of 1 to N. Therefore, in order to eliminate the
problem, the f
6.4
Write an array declaration and any necessary supporting classes to represent
the following statements:
a. students’ names for a class of 25 students
b. students’ test grades for a class of 40 students
c. credit-card transactions that contain a transaction number, a merchant name,
and a charge
d. students’ names for a class and homework grades for each student
e. for each employee of the L&L International Corporation: the employee
number, hire date, and the amount of the last five raises
6.6
Write a method called switchThem that accepts two integer arrays as
parameters and switches the contents of the arrays. Take into account that the
arrays may be of different sizes.
6.7
Describe a program for which you would use the ArrayList class instead of
arrays to implement choices. Describe a program for which you would use
arrays instead of the ArrayList class. Explain your choices.
Download