Analysis 415 --;37.4 The Booch Method 416 --;37.5 The Object Modeling Technique 417 --;37.6 The Objectory Method 419 --;37.7 The Fusion Method 420 --;37.8 The Unified Modeling Language 421 --;38 The Unified Modeling Language 423 --;38.2 The Meta-Model 424 --;38.3 The Models 424 --;38.4 Use Case Diagrams 425 --;38.5 The Object Model 426 --;38.6 Packages 432 --;38.7 Sequence Diagrams 434 --;38.8 Collaboration Diagrams 435 --;38.9 State Machine Diagrams 437 --;38.10 Deployment Diagrams 440 --;39 The Unified Process 443 --;39.2 The Unified Process 443 --;39.3 Requirements Workflow 448 --;39.4 Analysis Workflow 449 --;39.5 Design Workflow 454 --;39.6 Implementation Workflow 458 --;39.7 Testing Workflow 458 --;Part 9 The Future --;40 Areas of Java and Object Technology not Covered 461 --;40.2 Language Areas 461 --;40.3 Java Virtual Machine 462 --;40.4 JavaBeans 462 --;40.5 Enterprise JavaBeans 463 --;40.6 Remote Method Invocation 464 --;40.7 Java and C++ 465 --;40.8 CORBA 466 --;40.9 Java Naming and Directory Interface 467 --;40.10 Java and XML 468 --;40.11 Java 2D and Java 3D 468 --;40.12 Object-Oriented Databases 469 --;A The Java API Packages 471 --;B Java Keywords 472.
1.2 Programming Paradigms 3 --;1.3 Revolution Versus Evolution 4 --;1.4 Why Learn a New Programming Paradigm? 5 --;1.5 Pedigree of Object-Oriented Languages 10 --;1.6 Fundamentals of Object Orientation 11 --;1.7 The Basic Principles of Object Orientation 12 --;1.8 Encapsulation 13 --;1.9 Inheritance 14 --;1.10 Abstraction 16 --;1.11 Polymorphism 17 --;2 Elements of Object Orientation 21 --;2.2 Terminology 21 --;2.3 Types of Hierarchy 23 --;2.4 The Move to Object Technology 25 --;3 Constructing an Object-Oriented System 27 --;3.2 The Application: Windscreen Wipe Simulation 27 --;3.3 Where Do We Start? 28 --;3.4 Identifying the Objects 29 --;3.5 Identifying the Services Or Methods 30 --;3.6 Refining the Objects 31 --;3.7 Bringing it All Together 31 --;3.8 Where Is the Structure? 34 --;Part 2 Introduction to the Java Language --;4 A Brief History of Time, the Universe and Java 39 --;4.2 What Is Java? 39 --;4.3 Objects in Java 40 --;4.4 History 40 --;4.5 Commercial Versions of Java 41 --;4.6 The Java Environment 41 --;5 A Little Java 47 --;5.2 Setting up the Development Environment 48 --;5.3 Compiling and Executing Java 48 --;5.4 Using the Java Documentation Tool 50 --;6 Java Building Blocks 53 --;6.2 The Basics of the Language 53 --;6.3 Classes 54 --;6.4 Method Definitions 61 --;6.5 Interface Definitions 64 --;7 Java Constructs 67 --;7.2 Numbers and Numeric Operators 67 --;7.3 Characters and Strings 69 --;7.4 Assignments 70 --;7.5 Variables 71 --;7.6 Messages and Message Selectors 73 --;8 An Example Java Class 75 --;8.2 Defining a Class 75 --;8.3 Defining a Method 76 --;8.4 Creating an Instance 78 --;Part 3 Java and Object Orientation --;9 Classes, Inheritance and Abstraction 83 --;9.2 Classes Revisited 83 --;9.3 Inheritance in Classes 86 --;9.4 Abstract Classes 89 --;9.5 Constructors and Their Use 90 --;9.6 The main Method 91 --;10 Encapsulation and Polymorphism 93 --;10.2 Encapsulation 93 --;10.3 Packages 94 --;10.4 Polymorphism 97 --;11 Inner Classes and Reflection 101 --;11.2 What Are Inner Classes? 101 --;11.3 Types of Inner Class 103 --;11.4 How and When Should I Use Inner Classes? 105 --;11.5 The Reflection API 107 --;12 Data Structures 113 --;12.2 Data Structure Classes 113 --;12.3 The Abstract Class Dictionary 114 --;12.4 The Hashtable Class 114 --;12.5 The Vector Class 115 --;12.6 The Stack Class 118 --;12.7 A Queue Class 118 --;12.8 Enumeration 118 --;12.9 Arrays 119 --;12.10 Memory Management 124 --;12.11 Exercise: Vectors 126 --;13 The Collections API 129 --;13.2 What Is in the Collections API? 129 --;13.3 Collection Interfaces 131 --;13.4 Abstract Implementations 135 --;13.5 Concrete Implementations 137 --;13.6 The Collections Class 142 --;13.7 Iteration Over Collections 143 --;13.8 Array Sorting and Searching 144 --;13.9 Choosing a Collection class 144 --;Part 4 Further Java --;14 Control and Iteration 149 --;14.2 Control Structures 149 --;14.3 Iteration 153 --;14.4 Recursion 155 --;15 An Object-Oriented Organizer 157 --;15.2 The Organizer Class 157 --;15.3 The Class Definition 158 --;15.4 The Updating Protocol 158 --;15.5 The Accessing Protocol 159 --;15.6 The main Method 160 --;15.7 Exercise --;the Financial Manager Project 161 --;16 Streams and Files 163 --;16.2 Streams 163 --;16.3 Files 171 --;16.4 Accessing a File 173 --;16.5 Creating a File 175 --;16.6 Input From the Console 176 --;17 Serialization 179 --;17.2 The ObjectOutputStream Class 180 --;17.3 The ObjectInputStream Class 180 --;17.4 The Serializable Interface 181 --;17.5 The transient Keyword 182 --;17.6 The Externalizable Interface 182 --;17.7 A Simple Serialization Application 183 --;17.8 Exercise --;Using Files With the Financial Manager 186 --;18 Observers and Observables 189 --;18.2 The Dependency Mechanism 189 --;18.3 The Observer Interface 193 --;18.4 Extending the Dependency Example 194 --;18.5 Exercise --;Dependency and the Financial Manager 196 --;Part 5 Graphical Interfaces and Applets --;19 Graphic Programming Using the Abstract Window Toolkit 199 --;19.2 Windows as Objects 199 --;19.3 Windows in Java 200 --;19.4 The Abstract Window Toolkit 200 --;19.5 The Component Class 201 --;19.6 The Container Class 203 --;19.7 The Panel Class 204 --;19.8 The Frame Class 204 --;19.9 The Graphics Class 205 --;19.10 A Worked Graphical Application 207 --;20 User Interface Programming 211 --;20.2 The Event Delegation Model 211 --;20.3 GUI Component Classes 215 --;20.4 Additional AWT Classes 220 --;21 Managing Component Layout 221 --;21.2 The Flowlayout Manager 221 --;21.3 The Borderlayout Manager 222 --;21.4 The GridLayout Manager 223 --;21.5 The GridBayLayout Manager 224 --;21.6 The CardLayout Manager 227 --;21.7 A Simple GUI Example 227 --;22 Putting the Swing into Java 231 --;22.2 Swing, the JFC and the JDK 231 --;22.3 What Is the MVC? 232 --;22.4 Swinging the MVC Into Action 233 --;22.5 Transitioning to Swing 234 --;22.6 A Swinging Gallery 237 --;22.7 Things to Remember 242 --;23 A GUI Case Study 245 --;23.2 The Class Structure 248 --;23.3 The Instance Structure 255 --;23.4 Exercise --;A GUI for the Financial Manager 255 --;24 The Lowdown on Layouts, Borders and Containers 257 --;24.2 Containers in Swing 257 --;24.3 Layouts for Containers 258 --;24.4 Borders in Swing 262 --;24.5 Using Panels, Layouts and Borders 270 --;24.6 Planning a Display 270 --;25 Combining Graphics and GUI Components 273 --;25.2 The SwingDraw Application 273 --;25.3 The Structure of the Application 273 --;25.4 The Interactions Between Objects 277 --;25.5 The Classes 281 --;26 Swing Data Model Case Study 301 --;26.2 The JTree Swing Component 301 --;26.3 The JTree Package 305 --;26.4 Building the Data Model 307 --;26.5 Building the GUI Application 308 --;27 Java: Speaking in Tongues 315 --;27.2 Locale 316 --;27.3 Properties Objects 317 --;27.4 ResourceBundle Introduction 318 --;27.5 Formatting Output 321 --;28 The CUTting Edge 323 --;28.2 The Simple Editor 323 --;28.3 Cutting and Copying Data 324 --;28.4 Pasting Data 325 --;28.5 Drag and Drop 327 --;Part 6 Internet Working --;29 Sockets in Java 335 --;29.2 Socket to socket communication 335 --;29.3 Setting Up a Connection 335 --;29.4 An Example Client-Server Application 336 --;30 Applets and the Internet 341 --;30.2 Applet Security 342 --;30.3 The Applet Class 342 --;30.4 Working With Applets 344 --;30.5 The Account Applet 344 --;30.6 A Brief Introduction to HTML 346 --;30.7 The [left angle bracket]applet[right angle bracket] HTML Tag 347 --;30.8 Accessing HTML Files 348 --;30.9 Swing and Applets 349 --;30.10 Exercise: Tic-Tac-Toe Applet 349 --;31 Servlets: Serving Java up on the Web 353 --;31.2 How Servlets Work 354 --;31.3 The Structure of the Servlet API 355 --;31.4 An Example Servlet 356 --;31.5 Why Use Servlets? 359 --;32 Java Server Pages 361 --;32.2 What Is a JSP? 361 --;32.3 A Very Simple JSP 363 --;32.4 The Components of a JSP 364 --;32.5 Making JSPs Interactive 367 --;32.6 Why Use JSPs? 368 --;32.7 Problems With JSPs 368 --;33 Java Database Connectivity 371 --;33.2 What Is JDBC? 371 --;33.3 What the Driver Provides 373 --;33.4 Registering Drivers 373 --;33.5 Opening a Connection 374 --;33.6 Obtaining Data From a Database 375 --;33.7 Creating a Table 377 --;33.8 Applets and Databases 378 --;33.9 Mini SQL 379 --;Part 7 Java Development --;34 Java Style Guidelines 383 --;34.2 Code Layout 383 --;34.3 Variables 383 --;34.4 Classes 386 --;34.5 Interfaces 388 --;34.6 Enumerated Types 388 --;34.7 Methods 389 --;34.8 Scoping 392 --;34.9 Statement Labels 393 --;35 Exception Handling 395 --;35.2 What Is an Exception? 395 --;35.3 What Is Exception Handling? 396 --;35.4 Throwing an Exception 397 --;35.5 Catching an Exception 398 --;35.6 Defining an Exception 400 --;36 Concurrency 403 --;36.2 Concurrent Processes 403 --;36.3 Threads 404 --;36.4 The Thread Class 405 --;36.5 A Time Slicing Example 408 --;Part 8 Object-Oriented Design --;37 Object-Oriented Analysis and Design 415 --;37.2 Object-Oriented Design Methods 415 --;37.3 Object-Oriented