Returning a Value from a Method
The SDK and java.util.ArrayList
Packages and the import
Statement
The Default Package and the package Statement
Lesson 3: Strings and Packages
Single-Responsibility Principle
Lesson 4: Class Methods and Fields
Operating on Class Variables with Class Methods
Revisiting Primitive-Type Field Initialization
Lesson 5: Interfaces and Polymorphism
Sorting on Department and Number
ArrayList and the List Interface
Calling Superclass Constructors
The Principle of Subcontracting
Iterators and the for-each
Loop
Lesson 8: Exceptions and Logging
Creating Your Own Exception Type
Checked Exceptions vs. Unchecked Exceptions
Testing Philosophy for Logging
Additional Hash Tables and Set Implementations
Static Nested Classes and Inner Classes
Lesson 12: Reflection and Other Advanced Topics
The Account Class Implementation
Accessing Variables from the Enclosing Class
Building the Secure Account Solution
Cooperative and Preemptive Multitasking
Creating Threads with Runnable
Additional Notes on wait and notify
Summary: Basic Design Principles for Synchronization
Implications of Using Wildcards
Lesson 15: Assertions and Annotations
The assert Statement vs. JUnit Assert Methods
A TestRunner User Interface Class
Multiple Parameter Annotations
Additional Return Types and Complex Annotation Types
Additional Notes on Annotations
Additional Lesson I: Swing, Part 1
Button Clicks and ActionListeners
Additional Lesson II: Swing, Part 2
Additional Lesson III: Java Miscellany
Call by Reference versus Call by Value
Appendix A: An Agile Java Glossary
Appendix B: Java Operator Precedence Rules
18.191.223.123