LIST 65 ============================================================================ Writing Java Programs: Table of Contents * Object-Oriented Programming Concepts: A Primer o What is an Object? o What are Messages? o What are Classes? o What is Inheritance? o Where Can I Get More Information? * The Anatomy of a Java Application o Comparison of DateApp and "Hello World" o Defining a Class o The main() Method o Using Objects in Java Programs + Declaring, Instantiating and Initializing an Object + Class Members vs. Instance Members o Saving, Compiling and Running an Application * The Nuts and Bolts of the Java Language o A Simple Class Definition o The main() Method o Introducing Exceptions o Variables and Data Types o Control Flow Statements o The Standard Input Stream o Operators o The Standard Output Stream o Character Data o Running the Application * Objects, Classes, and Interfaces o The Life Cycle of an Object + Creating an Object + Using an Object + Garbage Collection of Unused Objects o Creating Your Own Classes + The Class Declaration + The Class Body + Constructors + Writing a finalize() Method o Declaring a Member Variable + A Variable's Type + A Variable's Name + Other Variable Declaration Components + Controlling Access to a Class's Variables + The Scoop on Instance and Class Variables + Declaring a Constant + Declaring a Transient Variable + Declaring a Volatile Variable o Writing Methods + The Method Declaration + Returning a Value from a Method + A Method's Name + Other Method Declaration Stuff + Controlling Access to a Class's Methods + The Scoop on Instance and Class Methods + Passing Information into a Method + Summary of A Method Declaration + The Method Body o Subclasses, Superclasses, and Inheritance + Creating a Subclass + Overriding Methods + Writing Final Classes and Methods + Writing Abstract Classes and Methods o Creating and Using Interfaces + Creating an Interface + Using an Interface * The String and StringBuffer Classes o Why Two String Classes? o Creating Strings and StringBuffers o Accessor Methods + More Accessor Methods o Modifying StringBuffers o Converting Objects to Strings o Converting Strings to Numbers o Strings and the Java Compiler * Setting Program Attributes o Properties o Command Line Arguments + The Space Character Separates Command Line Arguments + Conventions + Parsing Command Line Arguments * System o Using the System Class o The Standard I/O Streams o System Properties o Cleaning up Unused Objects o Loading Dynamic Libraries o Miscellaneous System Methods o Using System-Dependent Resources * Threads of Control o What Are Threads? o A Simple Thread Example o Thread Attributes + Thread Body + The Clock Applet + Thread State + Thread Priority + Daemon Threads + Thread Group + The ThreadGroup Class o Multithreaded Programs + Synchronizing Threads + Monitors + Java Monitors are Re-entrant + The notify() and wait() Methods + Fairness, Starvation, and Deadlock + Deadlock and the Dining Philosophers o Summary * Handling Errors using Exceptions o What's an Exception and Why Do I Care? o Your First Encounter with Java Exceptions o Java's Catch or Declare Requirement o Dealing with Exceptions + The Example + Catching and Handling Exceptions + The try Block + The catch Block(s) + The finally Block + Putting It All Together + Declaring the Exceptions Thrown by a Method o How to Throw Exceptions + The throw Statement + The Throwable Class and Its Subclasses + Creating Your Own Exception Classes o Runtime Exceptions--The Controversy * Input and Output Streams o Your First Encounter with I/O in Java o Overview of java.io's Input and Output Streams o Using Input and Output Streams o Working with Filtered Streams + Using DataInputStream and DataOutputStream + Writing Your Own Filtered Streams o Working with Random Access Files + Using Random Access Files + Writing Filters for RandomAccessFiles and DataInput/DataOutput ============================================================================