Docstoc

Java For Artists The Art, Philosophy, And Science of Object

Document Sample
Java For Artists  The Art, Philosophy, And Science of Object Powered By Docstoc
					Java For Artists: The Art, Philosophy, And Science of Object-Oriented Programming With J2SE And Swing
Subject Outline

Part I: The Java Student Survival Guide
1. An Approach To The Art Of Programming
Learning Objectives Describe the difficulties you will encounter in your quest to become a Java programmer State the purpose and use of an integrated development environment (IDE) List and describe the stages of the Flow List and describe the three roles you will play as a programming student State the purpose of the project approach strategy List and describe the steps of the project approach strategy List and describe the steps of the development cycle List and describe two types of project complexity State the importance of writing self-commenting code State the purpose and use of the three types of Java comments

2. Small Victories: Creating Java Projects
Learning Objectives List and describe the steps required to create and run a Java project State the purpose and use of an integrated development environment (IDE) List and describe the components of a typical IDE Describe the purpose and use of the following DOS commands: dir, erase, mkdir, cd Describe the purpose and use of the following UNIX commands: ls, cd Describe the purpose and use of the following Java command line tools: javac, java, javadoc, jar List and describe the steps required to create an executable jar file List the steps required to create a Java project using Macintosh OSX developer tools List the steps required to create a Java project using Sun's Java 2 Standard Development Kit (SDK) List the steps required to create a Java project using Borland's JBuilder IDE

3. Project Walkthrough: A Complete Example
Learning Objectives Apply the project-approach strategy to implement a Java programming assignment Apply the development cycle to implement a Java programming assignment State the actions performed by the development roles analyst, designer, and programmer Translate a project specification into a software design that can be implemented in Java

State the purpose and use of method stubbing State the purpose and use of state transition diagrams Explain the concept of data abstraction and the role it plays in the design of user-defined data types Use the javac command-line tool to compile Java source files Execute Java programs using the java command-line tool State the importance of compiling and testing early in the development process Use the javadoc command-line tool to create professional-grade documentation

4. Computers, Programs, And Algorithms
Learning Objectives State the purpose and use of a computer State the primary characteristic that makes the computer a unique device List and describe the four stages of the program execution cycle State the purpose and use of main, auxiliary, and cache memory Describe how programs are loaded into main memory and executed by a computer. State the purpose and use of the Java virtual machine List the similarities between the Java virtual machine and a real computer

Part II: Language Fundamentals
5. Overview Of The Java API
Learning Objectives List and describe functionality provided by the primary packages of the Java 2 Standard Edition Application Programming Interface (API) Describe how to trace a component's inheritance hierarchy to discover superclass functionality

6. Simple Java Programs: Using Primitive and Object Data Types
Learning Objectives Demonstrate your ability to create and execute simple Java programs List and describe the three categories of Java types: primitive, object, and array Demonstrate your ability to utilize primitive and object data types in simple Java programs to include boolean, char, byte, short, int, float and double Describe the differences between primitive and object data types State the value ranges each primitive data type can contain List and describe the functionality provided by the primitive type wrapper classes Demonstrate your ability to formulate correct and self-commenting identifiers List the Java reserved keywords State the purpose of expressions, statements, and operators List and describe the Java operators Explain what it means to call a method on an object

7. Controlling The Flow Of Program Execution
Learning Objectives Describe the purpose and use of the if statement Describe the purpose and use of the if/else Describe the purpose and use of the for statement Describe the purpose and use of the while statement Describe the purpose and use of the do/while statement Describe the purpose and use of nested if/else statements Describe the purpose and use of nested for statements Describe the purpose and use of the switch statement Demonstrate your ability to use control flow statements in simple Java programs

8. Arrays
Learning Objectives Describe the purpose of an array Describe the functionality provided by Java array types Trace and describe an array-type inheritance hierarchy List and describe the uses of single- and multidimensional arrays Describe how Java array objects are allocated in memory Describe the difference between arrays of primitive types vs. arrays of reference types Use the java.lang.Object and java.lang.Class classes to discover information about an array Demonstrate your ability to create arrays using array literals Demonstrate you ability to create arrays using the new operator Demonstrate your ability to create single-dimensional arrays Demonstrate your ability to create multidimensional arrays Describe how to access individual array elements via indexing Demonstrate you ability to manipulate arrays with iteration statements Demonstrate your ability to use the main() method’s String array parameter

9. Toward Problem Abstraction: Creating New Data Types
Learning Objectives State the role abstract data types play in a Java program State the purpose of the Java class construct State the purpose of a class constructor function State the purpose of a static class initializer List the four types of Java class members to include: static fields, instance fields, static methods, and instance methods State the difference between static class methods and instance methods State the difference between static class fields and instance fields Describe how static class fields and instance fields act as global variables within a class namespace

State the purpose and use of the UML class diagram Demonstrate your ability to utilize a UML class diagram to create a Java class

10. Compositional Design
Learning Objectives State the definition of simple aggregation State the definition of composite aggregation Explain the difference between simple and composite aggregation Express simple and composite aggregation using a UML class diagram Express an association between two class types using a UML class diagram Define the terms has a, contains, & uses in the context of compositional design Explain the difference between a dependency and an association Explain the client/server relationship between a containing and a contained class Demonstrate your ability to use simple and composite aggregation in your program design Explain how to implement message passing between objects State the purpose and use of a UML sequence diagram

11. Extending Class Behavior Through Inheritance
Learning Objectives State the purpose of inheritance State the purpose of a base class State the purpose of a derived class State the purpose of an interface State the purpose of an abstract base class Describe how Java implements dynamic polymorphic behavior State the purpose of a default constructor Describe the behavior of constructor chaining Demonstrate your ability to create a UML diagram that illustrates inheritance relationships between Java classes

Part III: Graphical User Interface Programming
12. Java Swing API Overview
Learning Objectives Describe the difference between AWT and Swing State the purpose of the computer screen coordinate system Utilize windows in your Java programs State the differences between types of windows State the difference between a component and a container Describe the purpose of layout managers and their use Create various components and organize them into a moderately complex GUI

List and describe packages of the Java Swing API

13. Handling GUI Events
Learning Objectives List and describe the different types of event listener interfaces List and describe the steps required to register an event listener with a GUI object Demonstrate your ability to have one class handle events generated by objects in another class Use several different design approaches to create and register event listeners Handle events with inner and anonymous classes Create custom event handlers using the ActionEvent, MouseEvent, KeyEvent, ChangeEvent, ListSelectionEvent classes Describe the differences between low-level and semantic events

14. Advanced GUI Programming
Learning Objectives Understand how Swing paints components Understand how to use the Graphics class Understand how to load a resource from a package-relative path Understand Swing’s separable model architecture Undeerstand how to write a custom renderer Create a reusable plug-in renderer component Understand how to write a custom editor Demonstrate your ability to define your own kind of events and event listeners Learn one way to create an offscreen image Paint with transparency Extend a Swing component to provide significant new functionality Gain confidence maneuvering the wide seas of the Swing API

Part IV: Intermediate Concepts
15. Exceptions
Learning Objectives Draw and describe the Throwable class inheritance hierarchy Explain the purpose and use of Errors Explain the purpose and use of Exceptions Explain the purpose and use of RuntimeExceptions Explain the difference between checked and unchecked exceptions State the purpose of the try, catch, and finally blocks Demonstrate the use of a try/catch statement Demonstrate the use of a try/catch/finally statement Demonstrate the use of a try/finally statement

Demonstrate the use of multiple catch blocks Demonstrate the use of the throws clause Demonstrate how to perform exception chaining Demonstrate how to extend the Exception class to create custom exceptions Demonstrate your ability to use exceptions effectively in your Java programs

16. Threads
Learning Objectives State the definition of a thread List and describe the two ways to create and start a thread List and describe the differences between creating a Thread class and implementing the Runnable interface Explain how to set the priority of a thread Explain how thread priority behavior depends on the operating system Understand the cause of race conditions Understand the mechanics of synchronization Demonstrate ability to manage multiple threads sharing common resources Demonstrate ability to use the Java wait and notify mechanism to ensure cooperation between threads Understand the cause of deadlock conditions

17. Collections
Learning Objectives State the purpose and use of the Java Collections Framework List and describe the collection interfaces and classes provided by the Java Collections Framework Describe the general performance characteristics of an array Describe the general performance characteristics of a linked-list Describe the general performance characteristics of a hashtable Describe the general performance characteristics of a red-black tree Demonstrate your ability to utilize collections in your Java programs Utilize casting when retrieving an object from a Java 1.4.x collection Explain why Java generic collections reduce the need to cast retrieved objects Describe the differences between Java 1.4.x collections and Java 5 collections Describe and employ the new syntax required to declare a Java 5 collection reference Utilize the enhanced for loop to iterate over a Java 5 collection Describe the effects of primitive type autoboxing and unboxing

18. File I/O
Learning Objectives Demonstrate your ability to conduct file I/O operations List and describe the primary Java classes required to conduct file I/O operations

Describe the behavior of a serialized object when saved to a file List the steps required to open a file, write objects to the file, read from a file, and close the file Demonstrate you ability to read byte streams from a file Demonstrate your ability to write byte streams to a file Demonstrate your ability to read character streams from a file Demonstrate your ability to write character streams to a file Demonstrate your ability to read and write fixed-length file records Demonstrate your ability to properly handle exceptions related to file I/O operations Demonstrate your ability to conduct random file I/O operations

Part V: Network Programming
19. Introduction To Networking And Distributed Applications
Learning Objectives Demonstrate your understanding of basic networking concepts State the definition of the term server hardware State the definition of the term server application Describe the difference between server hardware and a server application State the definition of the term client application List and describe the different ways in which server applications and client applications can be physically and logically distributed Describe the properties of a multi-tiered application State the definition of the terms protocol, port, packet, datagram, TCP/IP and UDP Demonstrate your understanding of Remote Method Invocation (RMI) Demonstrate your understanding of how InputStreams and OutputStreams are used to transfer data between network applications Describe the purpose and use of Sockets

20. Client-Server Applications
Learning Objectives Demonstrate your ability to write client-server applications Utilize the ServerSocket, Socket, and Thread classes to write multi-threaded server applications Utilize the DataInputStream and DataOutputStream classes to send data between socketbased client and server applications Formulate and apply proprietary network application protocols for use in client-server applications Utilize Remote Method Invocation (RMI) to create client-server applications Utilize the Properties class to store and retrieve application properties Utilize the Class.forName() method to dynamically load classes at application runtime Utilize the Singleton pattern in an application Utilize the Factory Class pattern in an application

Ensure the proper destruction of objects through the use of a finalize() method

21. Applets and JDBC
Learning Objectives State the purpose and use of applets List and describe the applet life-cycle stages List and discuss the primary issues involved when designing with applets List and describe applet security restrictions Use the <applet> tag to embed applets in HTML pages Utilize applet parameters to pass information into an applet from an HTML page Write an applet that utilizes Remote Method Invocation to send data to a server for persistence into a relational database Utilize Swing components in an applet Utilize JDBC to query, insert, and update data in a relational database Manipulate resultsets and resultset metadata in JDBC programs Utilize classes found in the java.sql package to write JDBC programs Create and execute prepared statements in JDBC programs

Part VI: Object-Oriented Design
22. Inheritance, Composition, Interfaces, Polymorphism
Learning Objectives List and discuss the benefits offered by the use of inheritance List and discuss the benefits offered by the use of composition Describe when inheritance is an appropriate design mechanism List the three essential purposes of inheritance List and describe the inheritance forms included in Meyer’s Inheritance Taxonomy Utilize Coad’s five inheritance checkpoints to determine the effective use of inheritance Describe the purpose of an interface State the definition of the term polymorphism Describe the role polymorphism plays in program design and implementation Describe when composition is an appropriate design mechanism State the definition of the term polymorphic containment Describe why composition is considered a force multiplier Utilize inheritance, interfaces, composition, and polymorphism together to achieve optimal design

23. Well-Behaved Objects
Learning Objectives State the importance of well-behaved Java objects List and describe the required functionality of a well-behaved Java object State the purpose of the hashCode() method

Describe two algorithms for implementing a suitable hashCode() method Demonstrate your ability to implement a suitable hashCode() method Describe how Java collections framework classes utilize the hashCode() method Describe how Java collections framework classes utilize the equals() method State the reasons for overriding the toString() method State the purpose of the equals() method Describe the contract for implementing the equals() method Describe the proper use of the clone() method Explain the difference between a deep copy vs. a shallow copy Describe the proper use of the finalize() method List and describe the differences between the Comparator and Comparable interfaces Describe what it means for a class of objects to have a natural ordering State the purpose of the Serializable interface

24. Three Design Principles
Learning Objectives State the purpose and use of the Liskov substitution principle State the purpose and use of Meyer design by contract programming State the purpose of preconditions and postconditions State the purpose of class invariants Describe the effects weakening and strengthening preconditions have on subclass behavior Describe the effects weakening and strengthening postconditions have on subclass behavior State the purpose and use of the open-closed principle State the purpose and use of the dependency inversion principle Demonstrate your ability to use the three design principles in your programming projects

25. Helpful Design Patterns
Learning Objectives State the purpose and use of design patterns Explain why design patterns are a form of knowledge reuse Describe the purpose of the Factory pattern Describe how to create a factory class that loads other classes by class name Describe the purpose of the Singleton pattern Describe the purpose of the Command pattern Describe the purpose of the Model-View-Controller (MVC) pattern Describe how to dynamically load a class into the JVM by name using the Class.forName() method Combine the MVC, Factory, Singleton, and Command patterns to formulate flexible application architectures Demonstrate your ability to utilize design patterns in your programs


				
DOCUMENT INFO
Jun Wang Jun Wang Dr
About Some of Those documents come from internet for research purpose,if you have the copyrights of one of them,tell me by mail vixychina@gmail.com.Thank you!