| Explain what it means for a class to implement an interface |
| Use the protected modifier in defining an
inheritance hierarchy |
| Describe when to use an abstract class |
| Explain the concept of the Java interface |
| Create an abstract method; describe the purpose of abstract methods |
| Describe the differences between an abstract class and an interface |
| Explain the number of classes that a class can extend, vs the number of
interfaces that a class can implement |
| Explain what elements can be declared within an interface |
| Explain what it means for a method to be declared abstract |
| Explain that all classed inherit methods of the Object class, including
equals() and toString() |
| Implement overridden versions of the equals() and toString() methods |
| Implement the Comparable<T> interface on a class to enable it to be
sorted when instances of that class are added to a collection such as an
ArrayList<T> |
| List the two types of objects required for event driven programming in
Java |
| Explain the role of "event source" objects and give examples of two
classes whose instances are "event source" objects |
| Explain the role of "event listener" objects and give examples of two
classes whose instances are "event listener" objects |
| Create an inner class that implements ActionListener to serve as an
event listener for ActionEvents generated by event sources such as JButtons |
| Subscribe the ActionEvents generated by a event source such as a JButton
to be listened to by an event listener |
| Define the action command string for an event source |
| Design and implement event handling methods to handle multiple Action
Events |
| Implement code to handle an action event from the
JButton or
JTextField Java Swing classes |
| Explain the purpose of the argument passed to the
actionPerformed() method |
| Design and implement an
ActionListener class |
| Determine an event source from within an
actionPerformed() method |
| Determine the specific object that initiated an Action Event |
| Describe at least two different ways of structuring
ActionListener classes and discuss
advantages and disadvantages of each |
| Describe the differences between an inner class and a regular
(non-inner) class |
| Make use of inner classes to implement
ActionListener classes |
| Explain how exception handling increases the robustness of software |
| Define exception; explain the concepts of catch
and throw as they relate to exceptions |
| Explain why
Error exceptions should not be caught in
application code |
| For a given program and input condition, determine the control flow of a
try-catch block |
| Implement a method that catches an exception thrown by a class in the
Java Standard Library |
| Implement a method that uses a try-catch
block and a repetition statement (i.e., loop) to validate user input |
| Distinguish between checked and unchecked exceptions |
| Explain the concept of exception propagation; explain the outcome if an
exception is thrown and not caught by the program |
| Explain the consequences of not handling a checked exception within a
method where the checked exception occurs |