1 The first step
1.1 Introduction
1.2 Software
1.3 Developing software
1.4 Conventional compilers
1.5 Interpreters
1.6 The Java development process
1.7 Your first program
2 The building blocks
2.1 Introduction
2.2 Simple data types in Java
2.3 Declaring variables in Java
2.4 Assignments in Java
2.5 Creating constants
2.6 Arithmetic operators
2.7 Expressions in Java
2.8 Output in Java
2.9 Input in Java: the EasyIn class
2.10 Program design
3 Taking control
3.1 Introduction
3.2 Selection
3.3 Iteration
4 Classes and objects
4.1 Introduction
4.2 What is object-orientation?
4.3 Attributes and methods
4.4 Encapsulation
4.5 Classes and objects in Java
4.6 Using the String class
4.7 The BankAccount class
4.8 The SmileyFace class
5 Implementing classes
5.1 Introduction
5.2 Implementing classes in Java
5.3 The static keyword
5.4 More on parameter passing
5.5 Wrapper classes
6 Arrays and collection classes
6.1 Introduction
6.2 Creating an array
6.3 Accessing array elements
6.4 Passing arrays as parameters
6.5 Collection classes
7 Extending classes with inheritance
7.1 Introduction
7.2 Defining inheritance
7.3 Implementing inheritance in Java
7.4 Overriding class methods
7.5 Abstract classes
7.6 The final modifier
7.7 Generic collection classes
7.8 Pros and cons of generic collections
8 Software quality
8.1 Introduction
8.2 Maintainability
8.3 Reliability
8.4 Robustness
8.5 Usability
9 Graphics and event-driven programs
9.1 Introduction
9.2 The Abstract Window Toolkit
9.3 The SmileyFace class revisited
9.4 The EasyFrame class
9.5 The ChangingFace class
9.6 Event-handling in Java
9.7 An interactive graphics class
9.8 A graphical user interface (GUI) for the Oblong class
9.9 A metric converter
9.10 Layout policies
9.11 Compound containers
9.12 GUIs for collections of objects
10 Case study – part 1
10.1 Introduction
10.2 The requirements
10.3 The specification
10.4 The design
10.5 Implementing the Payment class
10.6 Implementing the Tenant class
10.7 Implementing the TenantList class
11 Case study – part 2
11.1 Introduction
11.2 Keeping permanent records
11.3 Design of the GUI
11.4 Designing the event-handlers
11.5 Implementation
11.6 Testing the system
12 Programming for the World Wide Web
12.1 Introduction
12.2 Running an applet in a browser
12.3 Guidelines for creating applets
12.4 Passing parameters from an HTML file
12.5 Special applet methods
12.6 The RedCircle applet
12.7 What next?
13 Packages
13.1 Introduction
13.2 Understanding packages
13.3 The "Magic Robot" application
13.4 Developing your own packages
13.5 Setting the CLASSPATH environment variable
13.6 Running applications from the command line
13.7 An overview of the core Java API packages
14 Abstraction, inheritance and interfaces
14.1 Introduction
14.2 Abstraction
14.3 More on inheritance and polymorphism
14.4 Abstract classes and interfaces
14.5 Analysis of the EasyFrame class
14.6 Adapters
14.7 The toString method
15 Exceptions
15.1 Introduction
15.2 Pre-defined exception classes in Java
15.3 Handling exceptions
15.4 Exceptions in GUI applications
15.5 Unavoidable exceptions in your own classes
15.6 Throwing exceptions
15.7 Creating your own exception classes
15.8 Re-throwing exceptions
16 More on arrays and collection classes
16.1 Introduction
16.2 Multi-dimensional arrays
16.3 The NoughtsAndCrosses class
16.4 The Vector class
16.5 The IdSet class
16.6 Enhancing the user ID application
16.7 The Hashtable class
16.8 Enumeration objects
16.9 The BookTable class
17 Advanced graphics programming
17.1 Introduction
17.2 The Dialog class
17.3 Creating menus
17.4 The Choice class and the List class
17.5 The FileDialog class
17.6 Using scrollbars
17.7 Adding images to components
18 Working with files
18.1 Introduction
18.2 Input and output
18.3 Input and output devices
18.4 File-handling
18.5 Reading and writing to text files
18.6 Reading and writing to binary files
18.7 Reading a text file character by character
18.8 Stream tokenization
18.9 Object serialization
18.10 Random access files
19 Enhancing the user interface
19.1 Introduction
19.2 The Java Swing package
19.3 The JFrame class
19.4 The Border interface
19.5 Combining text and graphics with the Icon interface
19.6 Creating message boxes and input boxes
19.7 Creating new colours
19.8 Creating new fonts
19.9 More layout policies
19.10 Guidelines for creating good user interfaces
20 Case Study part 1: from UML to Java
20.1 Introduction
20.2 System overview
20.3 Requirements analysis and specification
20.4 Design
20.5 Implementation
20.6 Testing
21 Case Study part 2: the Airport GUI
21.1 Introduction
21.2 Design of the GUI
21.3 The JTabbedPane class
21.4 The AirportFrame class
21.5 Airport Dialogue Boxes
22 Multi-threaded programs
22.1 Introduction
22.2 Concurrent processes
22.3 Threads
22.4 The Thread class
22.5 Thread execution and scheduling
22.6 An alternative implementation
22.7 Synchronizing threads
22.8 Thread states
22.9 Animations
23 Java in context
23.1 Introduction
23.2 Language size
23.3 Language reliability
23.4 The role of Java
24 Beyond the second semester
24.1 Introduction
24.2 Rapid Application Development (RAD)
24.3 The PushMe application revisited
24.4 Java Database Connectivity
24.5 Networking
24.6 What next?
Revision questions
|