WA1253 Fundamentals of the Java Programming Language Training and Courseware Course Outline
|
|
1. Overview of Java
|
|
- Objectives
- History Of Java
- Benefits Of Java
- What Is Java?
- What's This "Virtual Machine"?
- Comparison to Other Languages
- Java Programs
- Basic Java Development Tools
- Java Editions
- Example - HelloWorld
- Java Classes
- Main Methods
- Statements
- Summary
|
| |
2. Java Tools in Eclipse
|
|
- Objectives
- Eclipse Platform
- Eclipse Workspace
- Perspectives, Views & Editors
- Basic Operations with Eclipse Views and Perspectives
- The Java Perspective
- The Debug Perspective
- Navigator View
- Package Explorer
- Outline View
- Task and Problems View
- Build and Validation
- Code Completion, Templates and Snippets
- Searching
- Configure Compiler Class Path
- JRE Switching
|
| |
3. Basic Object Concepts
|
|
- Objectives
- What Is An Object?
- State
- Behavior
- Encapsulation
- Encapsulation Examples
- Classes vs. Objects
- Inheritance
- Interfaces
- Polymorphism
- Benefits Of Objects
- Summary
|
| |
4. Basic Java Syntax
|
|
- Objectives
- Declaring And Initializing Variables
- Keywords
- Coding Tips Variables
- Primitive Data Types
- Logical - boolean
- Textual - char and String
- Integral - byte, short, int, long
- Floating Point - float and double
- Literal Values
- Strings
- Creating Strings
- White Space
- Comments
- Coding Tips - Comments
- Java Statements
- Coding Tips - Statements
- Scope of a Variable
- System.out/System.in
- Scanner Class
- Summary
|
| |
5. Operations and Making Decisions
|
|
- Objectives
- Operator Categories
- Special Situations
- Binary Operators
- Integer Division
- Numeric Promotion
- Type Conversion Of Primitive Types
- Unary Operators
- Relational Operators
- Logical Operators
- Bitwise Operators
- Bitwise Examples
- Shift Operators
- Overflow And Underflow
- Assignment Operators
- Ternary Operator
- Calculation Errors
- Operator Precedence
- Precedence Examples
- Combining Strings
- Coding Tips - Operators
- Control Flow Statements
- 'if' Statement
- 'if else' Statement
- Nested Statements
- "Short Circuited" Operators
- Coding Tips - if & if-else
- Summary
|
| |
6. Using Classes and Objects
|
|
- Objectives
- Objects, Instances, And Classes
- What Are Classes?
- Working With Classes And Objects
- Instantiation
- Instance Methods
- Object References
- String Operations
- The Math Class
- Summary
|
| |
7. Writing Classes
|
|
- Objectives
- Why Define Your Own Classes?
- Encapsulation
- Elements Of A Class
- Defining Classes
- Coding Tips - Class Definitions
- Fields
- Defining Fields
- Coding Tips - Fields
- Methods
- Defining Methods
- Passing Parameters
- Overloading Methods
- Coding Tips - Methods
- Local Variables vs. Instance Variables
- Example - Defining a Class
- Example - Fields
- Example - Defining a Method
- Example - Calling a Method
- Summary
|
| |
8. Controlling Code Access and Code Organization
|
|
- Objectives
- Controlling Access
- Data Hiding
- Encapsulation
- JavaBeans
- Packages
- Problems Solved With Packages
- Naming Packages
- Declaring Packages In Classes
- Package Access
- Example - Access Modifiers
- Import Statement
- Using Classes From Packages
- Coding Tips - Import Statements
- Correlation To File Structure
- Class Path
- Java Core Packages
- Java API Documentation
- Summary
|
| |
9. Constructors and Class Members
|
|
- Objectives
- Constructors
- Multiple Constructors
- Defining Constructors
- Default Constructor
- Example - Calling Constructors
- 'this' Keyword
- Using 'this' to Call a Constructor
- Using 'this' to Set a Field
- Class Members
- Examples Of Class Members
- Comparison With Instance Members
- Use Of Class Variables
- Static Class Methods
- Use Of Class Methods
- Main Method And Command Line Arguments
- Declaring Constants
- Coding Tips - Class Members
- Useful Standard Class Members
- Initialization Blocks
- Static Initialization Blocks
- Summary
|
| |
10. Advanced Control Structures
|
|
- Objectives
- 'switch' Statement
- Example - switch
- Switch "Fall Through"
- 'for' Loop
- Example - for
- 'while' Loop
- Example - while
- 'do while' Loop
- Example - do while
- Break Statement
- Example - break
- Labeled Statements
- Example - Labeled break
- Continue Statement
- Example - continue
- Example - Labeled continue
- Coding Tips - Control Structures
- Summary
|
| |
11. Arrays
|
|
- Objectives
- Arrays
- Declaring Arrays
- Populating Arrays
- Accessing Arrays
- Array Length
- Coding Tips - Arrays
- Array References
- Multidimensional Arrays
- Arrays Of Arrays
- Copying Arrays
- For-Each loop
- Variable Arguments
- Variable Arguments Example
- Summary
|
| |
12. Inheritance
|
|
- Objectives
- Inheritance Is
- Inheritance Examples
- Declaring Inheritance
- Inheritance Hierarchy
- Access Modifiers Revisited
- Inherited Members
- Instances Of A Subclass
- Example Of Inheritance
- Role In Reuse
- The super Keyword
- Example - super Keyword
- Problems with Constructors
- Limiting Subclasses
- 'set' Methods in Constructors
- The Object Class
- Summary
|
| |
13. Commonly Overridden Methods
|
|
- Objectives
- Overriding Methods
- toString()
- toString() in Object
- Overriding toString()
- Comparing Objects
- Using == vs. equals(..)
- Overriding equals(..)
- Complex Comparisons
- equals(..) Example
- hashCode()
- Overriding hashCode()
- hashCode() Example
- Refactoring
- Changing Class Name
- Changing Method Name
- Changing Variable Name
- Generalizing a Variable
- Moving a Class to a Different Package
- Extracting Code to a Method
- Pull-up and Push-down Methods
|
| |
14. Exceptions
|
|
- Objectives
- What is an Exception
- Benefits
- The Exception Class
- How to Work With Exceptions
- Example Exception Handling
- The try-catch-finally Statement
- Flow of Program Control
- Exception Hierarchy
- Checked Exceptions
- Unchecked Exceptions
- Coding Tips - Exception Types
- Catching Multiple Exceptions
- Specifying Thrown Exceptions
- Rethrowing Exceptions
- Chaining Exceptions
- Creating your Own Exception
- Summary
|
| |
15. Interfaces and Polymorphism
|
|
- Objectives
- Casting Objects
- The instanceof Operator
- Abstract Classes
- Abstract Class An Example
- Interface
- Interface An Example
- Comparable Interface
- Comparable Example
- Coding Tips - Superclass or Interface?
- Polymorphism
- Conditions for Polymorphism
- Coding Tips - Leveraging Polymorphism
- Covariant Return Types
- Summary
|
| |
16. Collections and Generics
|
|
- Objectives
- What are Collections?
- Arrays vs. Collections
- Main Collections Interfaces
- java.util.Collection
- Main Collection Methods
- Sets
- java.util.List
- java.util.Queue
- Iteration on a Collection
- Iterator vs. For-Each Loop
- Maps
- java.util.Map
- java.util.SortedMap
- Collections Implementations
- Generics
- Generics and Collections
- Generic Collection Example
- Collections and Primitive Types
- "Wrapper" Classes
- Autoboxing
- Summary
|
| |
17. Useful Java Classes
|
|
- Objectives
- Java Logging API
- Control Flow of Logging
- Logging Levels
- Logging Handlers
- Loggers
- Logging Example
- Logging Formatters & Log Manager
- Logging Configuration File
- Example Logging Configuration File
- Logging Filters
- java.lang.StringBuilder
- java.util.StringTokenizer
- java.util.Arrays & java.util.Collections
- java.util.Random
- java.util.Date
- GregorianCalendar & Calendar
- Formatting
- Formatting Example
- Summary
|
| |
18. Input and Output
|
|
- Objectives
- Overview of Java Input/Output
- Streams
- Input Stream
- Output Stream
- "Chained" Streams
- The File Class
- File Example
- RandomAccessFile
- Reader and Writer
- Buffers
- Channels
- Serialization
- Serializing Object State
- Avoiding Serialization Problems
- serialVersionUID
- Options to Write Files
- Using Streams - Write Example
- Using Streams - Read Example
- Using Readers and Writers - Write Example
- Using Readers and Writers - Read Example
- Using Readers and Writers - Scanner Read Example
- Using Buffers and Channels - Write Example
- Using Buffers and Channels - Read Example
- Summary
|
| |
19. Threads
|
|
- Threads
- Overview of Threads
- Threads in Java Programming
- Write a Runnable Class
- Create Threads
- Another Way of Creating Threads
- Two ways of creating threads
- States in a Thread s Lifetime
- JVM Scheduler
- Control and Schedule Thread
- Executor Interface
- Callable<V> Interface
- ExecutorService Interface
- Future<T> Object
- Coordinating the Concurrency of Multiple threads
- Synchronization
- How Does the Object Lock Flag Work
- Using the synchronized keyword
- The implication of synchronization
- Example of Synchronization - Producer/Consumer
- Example of Synchronization MyStack
- Example of Synchronization Producer
- Example of Synchronization Producer
- Example of Synchronization Consumer
- Example of Synchronization Consumer
- Example of Synchronization SyncTest
- But
- Coordinating Thread Cooperation
- wait() and notify()
- Example of Coordination Producer/Consumer
- Example of Coordination MyStack
- Example of Coordination MyStack
- Results
- Deadlock
|
| |
20. Networking
|
|
- Java Networking
- Overview
- URL Connections
- Browser Example
- InetAddress
- Socket Classes
- Simple Clients and Servers
- Multithreaded Servers
- UDP Sockets
|
| |
21. Using Swing to Build GUIs
|
|
- Objectives
- What Is Swing?
- Swing Example
- Building A Swing GUI
- Simple Example
- JFrame
- Components
- Adding Components
- BorderLayout
- Panel
- BoxLayout
- Swing Widgets
- JTextField
- JTextArea
- JList
- JCheckBox
- JPasswordField
- Event Handling
- Event Handler Class
- Sample Event Handler Class
- Adding The Event Handler
- Using Event Handlers
- Inner Event Handler Classes
- Inner Event Handler
- Using Inner Classes
- Recoded main()
- Components As Fields
- Example - The Time Updater
- SwingTimeDisplay.java
- Summary
|
| |
22. Other Java Concepts
|
|
- Objectives
- Annotations
- Enumerated Types
- Garbage Collection
- JVM Storage Areas
- Assertions
- Assertions Example
- When to use Assertions
- Enabling Assertions
|
|