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